用户交互Scanner
- java.util.Scanner是java5的新特征,通过Scanner类来获取用户的输入
- 基本语法:
Scanner s=new Scanner(System.in)
- 通过Scanner类的next()与nextLine()方法来获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据
Scanner对象
next()接收只能接收出第一个词
package Flowcontro;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
if (scanner.hasNext()){ //判断是否有输入;此处默认为true,即有输入才有输出
String a=scanner.next();//运行到该行时,等待输入,使用nextLine的方式接收
System.out.println(a);//输出
}//因此输入输出的指令代码,需要在if中括号里面
scanner.close();
//凡是输入IO流的类如果不关闭就会一直占用资源,要养成好习惯用完就关掉
}
}
即,当输入:Hanker is a handsome boy.
只输出:Hanker
nextLine()接收可以接收出整句
package Flowcontro;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if (scanner.hasNextLine()){
String b=scanner.nextLine();
System.out.println(b);
}
scanner.close();
}
}
即,当输入:Hanker is a handsome boy.
可输出:Hanker is a handsome boy.
不用判断
package Flowcontro;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//创建新扫描对象
String c= scanner.nextLine();//接收对象
System.out.println(c);//输出对象
scanner.close();
}
}
差异
next():
1.一定要读取到有效字符后才可以结束输入;
2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉;
3.只有输入有效字符后,才将其后面的空白作为分隔符或者结束符;
4.next()不能得到带有空白的字符串。
nextLine()
1.以Enter为结束符,也就是说nextLine()方法返回的时输入回车之前的所有字符
2.可以获得空白。