Scanner对象
Scanner对象是用来实现程序与人的交互,属于Java.util下的,是Java5的新特性,Scanner类是用来获取用户输入的
基本语法
Scanner sc = new Scanner(System.in);
-
通过Scanne类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判读是否还有输入的数据。
应用
next();
nextLine();
这两个方法大同小异,但是还是有区别的
-
next()方法
package com.simple.scanner;
import java.util.Scanner;
/**
* @author huYuHao
* @version 1.0
* @create 2021/3/10
* @since 1.8
*/
public class Demo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有舒服字符串
if (sc.hasNext()){
//使用next方式接受
String str = sc.next();
System.out.println("输入的内容为:" + str);
}
//凡是属于IO流的类如果不关闭就会一直占用资源,所以要养成好习惯用完就关闭
sc.close();
}
}
使用以上代码获取用户输入,举个例子
我输入HelloWorld

很正常,打印的确实是我输入的数据
但是我要是在中间加一个空格 Hello World,那结果会是什么样的呢?

会发现后面的 World消失了,这是因为next()方法会把空格当成截断符,导致空格后面的World没有输出
nextLine()方法
先上代码
package com.simple.scanner;
import java.util.Scanner;
/**
* @author huYuHao
* @version 1.0
* @create 2021/3/10
* @since 1.8
*/
public class Demo02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("使用nextLine方式接收:");
if(sc.hasNextLine()){
String str = sc.nextLine();
System.out.println("输出的内容为:" + str);
}
sc.close();
}
}
我们输出Helloworld

没有任何问题
我输出Hello World

没得问题,直接输出成功,nextLine()会更加稳健
End
努力做一个技术流

浙公网安备 33010602011771号