java:next()和nextLine()

啥都不说,我们先上代码和图:
代码1:

package demo;

import java.util.Scanner;

public class TextNext {
    
    
	public static void main(String[] args) {
    
    
		Scanner input = new Scanner(System .in);
		System.out.println("请输入str1:");
		String str1 = input.next();
		System.out.println("请输入str2:");
		String str2 = input.nextLine();
		System.out.println("str1:" + str1);
		System.out.println("str2:" + str2);
	}
}

输入空格再按Enter
在这里插入图片描述
字符之间有空格
在这里插入图片描述
输入字符后直接回车
在这里插入图片描述
代码2:

package demo;

import java.util.Scanner;

public class TextNext {
    
    
	public static void main(String[] args) {
    
    
		Scanner input = new Scanner(System .in);
		System.out.println("请输入str1:");
		String str1 = input.nextLine();
		System.out.println("请输入str2:");
		String str2 = input.nextLine();
		System.out.println("str1:" + str1);
		System.out.println("str2:" + str2);
	}
}

先输入空格,字符之间加空格
在这里插入图片描述
输入字符后回车
在这里插入图片描述
直接回车
在这里插入图片描述
综合上面代码的运行结果我们总结出一下结论:
1.使用next()从键盘接收字符时,如果在此之前输入空格、Enter键、Tabd键时会被省略掉,即只next()读取到有效内容时才会进行输入;
2.next()在读取到有效字符后会把之后录入的空格键、Enter键、Tab键视为分隔符或者结束符,所以next()不能接收到带有空格的字符串;
3.nextLine()的结束符只是Enter键,使用nextLine()可以得到带有空格的字符串;
4.这两种方法连用时要注意:使用next()和nextLine()时,可能会出现代码1中不能给str2录入值的情况,原因是nextLine()自动读取了next()中Tab键、空格键、Enter键后面的内容,而nextLine()是可以接收空格的,所以会出现不能从键盘键入str2的情况,解决的方法是在next()的后面接着使用nextLine().

猜你喜欢

转载自blog.csdn.net/qq_43825377/article/details/106342998