CBe*_*nni 2 java java.util.scanner
我正在尝试使用java.util.Scanner以下方式接收输入:
Scanner scanner = new Scanner(System.in);
int bla = scanner.nextInt();
String blubb = scanner.nextLine();
Run Code Online (Sandbox Code Playgroud)
但是nextLine()命令只是被跳过并返回一个空字符串.我怎么解决这个问题?
Mar*_*ers 10
该nextInt方法不会消耗整数后面的新行字符,因此当您调用nextLine它时,只需在整数后面读取新行字符.
例
如果你有这个输入:
42\n
foo\n
Run Code Online (Sandbox Code Playgroud)
该readInt调用消耗42但不是新行字符:
\n
foo\n
Run Code Online (Sandbox Code Playgroud)
现在当你调用readLine它时会消耗第一行的其余部分,它只包含新的行字符.
解
尝试丢弃整数后的其余部分:
int bla = scanner.nextInt();
scanner.nextLine(); // Discard the rest of the line.
String blubb = scanner.nextLine();
Run Code Online (Sandbox Code Playgroud)
或者nextLine始终使用读取每一行,然后自己将字符串解析为整数:
String blaString = scanner.nextLine();
int bla = Integer.valueOf(blaString);
String blubb = scanner.nextLine();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2460 次 |
| 最近记录: |