Java5新特征:java.util.Scanner
我们可以通过Scanner类来获取用户输入
public class Test1 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断是否还有输入,输入结束后返回true
if(scanner.hasNext()){
//使用next方式接收
String str = scanner.next();
System.out.println("输出的内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源,所以用完要关掉
scanner.close();
}
}
运行结果如下:

next()注意事项:
1. 读取到**有效字符**后才可结束输入
2. 有效字符之前的空白会自动去掉
3. 输入有效字符后输入的空白才视为分隔符或者结束符
4. next()不能得到带有空格的字符串
public class Test2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextline方式接收:");
//判断是否还有输入
if (scanner.hasNextLine()){
String str1 = scanner.nextLine();
System.out.println("输出的内容为:"+str1);
}
scanner.close();
?
}
}
运行结果如下:

nextLine()注意事项:
以Enter为结束符,返回输入回车之前的所有字符
可以获得空白
public class Test3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
?
//从键盘接收数据
int i = 0;
System.out.println("请输入整数:");
if (scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("整数数据:"+i);
}else {
System.out.println("输入的不是整数数据");
}
?
scanner.close();
}
}
运行结果如下:
输入非整数数据时:
输入整数数据时:
public class Demo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
?
//从键盘接收数据
float f = 0.0f;
?
System.out.println("请输入小数:");
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据:"+f);
}else {
System.out.println("输入的不是小数数据");
}
?
scanner.close();
}
}
运行结果如下:
输入整数时:
输入小数:
输入其它:
利用上述功能实现一个可以输出输入数据之和以及输入数据平均值的程序
public class Demo3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
?
double sum = 0;
int m = 0;
?
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m + 1;
sum = sum + x;
}
System.out.println(m+"个数和为:"+sum);
System.out.println(m+"个数平均值为:"+(sum/m));
?
scanner.close();
}
}
原文:https://www.cnblogs.com/SummeRr/p/15091988.html