Java: 使用Scanner类实现读取控制台输入
本文内容摘抄自runoob.com,并加入了新的内容。
Java Scanner类
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
1.使用next方法()
下面是创建 Scanner 对象,使用next()方法来读取控制台输入的基本语法:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘输入数据
// next方式接收字符串
System.out.println("请输入数据:");
if (scan.hasNext()) {// 判断是否还有输入
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
scan.close();
}
}
输入10000 0000
运行效果
可见输入字符串中,空格后的0000并未被读取。
这是因为next() 方法有这样的 特性
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。next() 不能得到带有空格的字符串。
这个问题使用nextLine()方法就可以得到解决。
2.使用nextLine()方法
下面是创建 Scanner 对象,使用nextLine()方法来读取控制台输入的基本语法:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// nextLine方式接收字符串
System.out.println("请输入数据:");
if (scan.hasNextLine()) {// 判断是否还有输入
String str2 = scan.nextLine();
System.out.println("输入的数据为:" + str2);
}
scan.close();
}
}
同样输入10000 0000
运行效果
可见输入10000 0000,同样输出了10000 0000
这是因为nextLine() 有这样的 特性
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、nextLine()可以获得空白。
开发者可以根据自己的需要选择需要的方法对控制台输入数据进行读取。
3.使用nextInt()方法获取控制台整数输入
下面是创建 Scanner 对象,使用nextLine()方法来读取控制台输入的基本语法
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// nextLine方式接收字符串
System.out.println("请输入数据:");
if (scan.hasNextInt()) {// 判断是否还有输入
int zs = scan.nextInt();
System.out.println("输入的数据为:" + zs);
}
scan.close();
}
}
以上。