我正在读一个数字,然后是一个字符串,然后比较该字符串。 效果很好:
int num = sc.nextInt();
String S = sc.next();
if (S.equals("TEST")){
//do something
}
在给i / p说5 TEST时,程序进入if部分。
但是如果我改用.nextLine(),即
int num = sc.nextInt();
String S = sc.nextLine();
if (S.equals("TEST")){
//do something
}
它不起作用。对于相同的输入(5个TEST),它将不执行if部分。
我知道.next()读取直到第一个空格,.nextLine()读取直到遇到“ \ n”。这两个都返回相同的字符串,那么这里出了什么问题?
编辑:发现.nextLine()正在读取字符串以及前面的空白。为什么? .nextInt()函数是否将光标返回到遇到定界符之前的点?
答案 0 :(得分:0)
很简单:
next()
使用定界符模式返回下一个标记,默认情况下,该定界符与空格匹配(因此消除空白,因为有分隔符),而不是nextLine()
从当前光标位置读取到行尾。>