用户交互Scanner
用户交互Scanner
java.util.Scanner是Java自带的类,我们可以通过Scanner类来获取用户的输入。基本语法:Scannner s=new Scanner(System.in);新建一个扫描器对象s,来源是系统输入。
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取之前我们一般需要通过hasNext()与hasNextLine()判断是否还有输入的数据。例:
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接受:");
if (scanner.hasNext()){
String str=scanner.next();
System.out.println("输出的内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源,养成良好习惯,用完就关掉
scanner.close();
}
}
Scanner对象:
-
next():
- 必须要读取到有效字符之后才可以结束输入。
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
- 只有输入有效字符之后才将其后面输入的空白作为分隔符或者结束符。
- next()不能得到带有空格的字符串。
-
nextLine():
-
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
-
可以获得空白。
同理,若要输入整数、小数也可采用Scanner类中的hasNextInt()、nextInt()、hasNextFloat()、nextFloat()等方法。
-
-
hasNext():
- 会自动跳过空格、回车、Tab,直接看后面有没有非空白的内容。
- 阻塞等待:如果暂时没输入、控制台空着,它会卡住等待输入,不会直接返回false。
-
hasNextLine():
- 只认回车换行,只要缓冲区里还有没读过的一整行,就返回true。空行也算一行。
- 与hasNext()类似,也会阻塞。
浙公网安备 33010602011771号