System.in
Java 的控制台输入由 System.in 实现,但操作起来复杂,一般都配合 Scanner 类 使用
Scanner 类
java.util.Scanner 是 Java5 的新特征,通过 Scanner 类可以很方便的获取用户输入
Scanner scanner = new Scanner(System.in);
nextLine()方法
获取控制台输入的字符串
Scanner scanner = new Scanner(System.in);
System.out.println("输入:");
System.out.println("scanner.nextLine()---" + scanner.nextLine());
scanner.close();
执行后,等待输入123 456
输出结果为:scanner.nextLine()--- 123 456
解释: 以 回车 为结束符,即:返回 回车之前的所有字符。
注意: 可以获得空格。
nextInt()方法
特点与next()方法相同,并将输入的内容转换成int型
Scanner scanner = new Scanner(System.in);
System.out.println("输入:");
int i=scanner.nextInt();
System.out.println(i);
执行后,等待输入:
输入
123,执行结果如下:123输入
abc,执行报错,无法转换成int型
nextXXX()方法
同nextInt()方法,将输入内容转换成相应的类型
next() 方法
获取控制台输入的字符串
Scanner scanner = new Scanner(System.in);
System.out.println("输入:");
System.out.println("scanner.next()---" + scanner.next());
System.out.println("scanner.next()---" + scanner.next());
scanner.close();
执行后,等待输入:
输入空格,然后敲回车,没有反应
解释:读取到有效字符后才可以结束输入输入
123,然后敲回车,结果如下:scanner.next()---123解释:有效字符之前的空格,next() 方法会自动去掉
输入
123 456,然后敲回车,结果如下:scanner.next()---123 scanner.next()---456解释:有效字符后面输入的空格作为分隔符
注意: 不能得到带有 空格 的字符串
next() 和 nextLine()不要一起使用
Scanner scanner = new Scanner(System.in);
System.out.println("输入:");
System.out.println("scanner.next()---" + scanner.next());
System.out.println("scanner.nextLine()---" + scanner.nextLine());
scanner.close();
执行后,输入:123敲回车
执行结果如下:
scanner.next()---123
scanner.nextLine()---
因为回车影响了获取数据,nextLine()方法没有获取到数据
练习
求和
键盘录入两个数据并求和,代码如下:
Scanner sc = new Scanner(System.in);
// 接收数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
// 对数据进行求和
int sum = a + b;
System.out.println("sum:" + sum);
取最值
键盘录入三个数据并获取最大值,代码如下:
// 创建对象
Scanner sc = new Scanner(System.in);
// 接收数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt(); System.out.println("请输入第三个数据:");
int c = sc.nextInt();
// 如何获取三个数据的最大值
int temp = (a > b ? a : b);
int max = (temp > c ? temp : c);
System.out.println("max:" + max);