next()和nextLine()
Hello! 今天给大家分享一个知识点哈.
还记得当时学java的时候我曾纠结于nextLine和next的使用上(/菜),现在来给大家简单介绍一下他们的区别和使用。 ?
简单介绍一下:
next()和next line ( ) 都是Scanner类中的方法,而且作用都是获取输入的String类型的内容。
具体代码实现:
Scanner scanner=new Scanner(System.in);
String string=scanner.next();
String string1=scanner.nextLine();
? 那么重点来了,那他们又有什么区别呢?这就要先了解他们的处理机制了。 ?
1,next
next(): 它会自动地消除有效字符之前的空格,只返回输入的字符,不会得到带空格的字符串。
也就是说如果输入了一串字符,到了有空格的时候就会停止录入,只录入空格前面的东西,空格后面的东西(包括分隔的空格都会保留在缓存区域)
除了空格以外,Tab键和Enter键都被视为分隔符(结束符)。
?
2,nextLine()
nextLine():
它返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
也就是说输入一串字符,它就可以接受所有字符包括空格,但是遇到回车Enter就会停止录入,只录入前面的东西。 ? ?
3,搭配使用
搭配使用:他们也是可以搭配使用的哦。
它们可以单独使用,也可以搭配使用,搭配使用可以处理很多的录入情况。
情况1
如果想录入一个字符串,但是中间有一个空格间隔。
例如:如果想录入:你好 再见。
具体代码实现:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String string = scanner.next();
String string1 = scanner.next();
System.out.println(string);
System.out.println(string1);
String string2 = scanner.nextLine();
System.out.println(string2);
}
?
情况2
如果想录入一个字符串,但是中间有一个回车Enter。
例如:如果想录入: 你好 再见
具体代码实现:
String string = scanner.next();
String string1 = scanner.next();
System.out.println(string);
System.out.println(string1);
String string2 = scanner.nextLine();
String string3 = scanner.nextLine();
System.out.println(string2);
System.out.println(string3);
String string4 = scanner.nextLine();
String string5 = scanner.next();
System.out.println(string4);
System.out.println(string5);
?
4,特别注意
特别注意:!!!
在录入中间有回车的字符串的时候,不要使用next()和nextLine()的配合,next会将回车之前的字符串录入,将回车以及后面的内容留在缓存区,next()直接去缓存区录入数据,结果上来就碰上了回车,(还没有开始就结束了),那么缓存区回车后面的内容自然就无法接受了
解决方法:可以在next()和nextLine()中间再加一个nextLine(),让新加的这个nextLine()将回车吸收,结束,然后最后的nextLine()就可以直接录入数据了。
代码实现:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String string1= scanner.next();
String string2= scanner.nextLine();
String string3= scanner.nextLine();
System.out.println(string1);
System.out.println(string3);
}
|