Scanner类用于获取用户输入
Scanner scan = new Scanner(System.in)
用法
读取之前用hasNext、hasNextLine判断是否有输入的数据
输入字符串
-
next读入方法import java.util.Scanner; class ScannerDemo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("next方式接受字符串:"); if (scan.hasNext()) { String st1 = scan.next(); #读入 System.out.println("输入的数据:" + st1); } } }next方式接受字符串:
hello world
输入的数据:hello-
自动去除有效字符之前的空格
-
以空格作为结束符
-
-
nextLine读入方法import java.util.Scanner; class ScannerDemo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("nextLine方式接受字符串:"); if (scan.hasNext()) { String str2 = scan.nextLine(); #读入 System.out.println("输入的数据:" + str2); } } }nextLine方式接受字符串:
hello world
输入的数据:hello world- 以回车为结束符
输入数值
读取之前通过hasNextxxx()进行验证,使用nextxxx进行读取
-
以输入int型数据为例
import java.util.Scanner; class ScannerDemo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int i = 0; System.out.println("输入整数:"); if (scan.hasNextInt()) { #判断是否为整型 i = scan.nextInt(); #读入整型 System.out.println("输入的整数:" + i); } else { System.out.println("输入的不是整数!"); } } }输入整数:
666
输入的整数:666- 其他类型:float、Long等类似
-
换行输入多个数值
import java.util.Scanner; class ScannerDemo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); double sum = 0; while (scan.hasNextInt()) { sum += scan.nextInt(); } System.out.println("输入数值的总和:" + sum); } }1
2
3
0.0
输入数值的总和:6.0- 输入非特定类型值时结束
- while循环输入
-
空格输入多个数值(一行)
class ScannerDemo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); List<Integer> a = new ArrayList(); for (int i = 0; i < 5; i++) { a.add(scan.nextInt()); } for (int i = 0; i < a.size(); i++) { System.out.println(a.get(i)); } } }1 2 3 4 5
1
2
3
4
5- nextInt:是读取下一个int,不管分隔符是空格还是回车
- 或者是以字符串的形式用nextLine读入,用split分割,然后转换成int
本文深入讲解Java中Scanner类的使用方法,包括如何读取不同类型的用户输入,如字符串、整数、浮点数等,并演示了如何利用hasNext和next方法进行有效的数据验证和读取。同时,对比了next与nextLine方法在处理字符串输入时的区别。

1万+

被折叠的 条评论
为什么被折叠?



