Scanner对象
通过Scanner类获取用户的输入,通过next()与nextLine()方法获取输入的字符串,在读取前一般使用hasNext()与hasNextLine()判断是否还有输入的数据
下面为演示代码,可以明显看出二者的区别
next()方式
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
if (scanner.hasNext()){//判断用户有没有输入字符串
String str = scanner.next();
System.out.println("输出的内容为" + str);
}
scanner.close();
}
}
程序结果:
我们输入的是hello world但输出结果是hello,这是怎么回事呢?
再演示nextLine()方式下的结果
nextLine()方式
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
if (scanner.hasNext()){//使用hasNext()判断用户有没有输入字符串
String str = scanner.next();//使用next()获取输入的字符
System.out.println("输出的内容为" + str);
}
scanner.close();
}
}
运行结果:
使用nextLine()将输入的信息全部输出了
我们得出二者的区别:
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next()不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。