用户交互 Scanner
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
基本语法
首先用import来引用Scanner类库 (内裤)。
import java.util.Scanner ; //引用Scanner类库
通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,
在读取前我们一般需要使用 hasNext 与 hasNextLine 判断是否还有输入的数据。
Scanner s = new Scanner(System.in); //Scanner 基本语法
使用例
- 输入什么,就输出什么.
( 使用scan.hasNext() 和 scan.next() 分别执行 检测和接受输入 )
import java.util.Scanner ; //引用Scanner类库
public class Demo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//创建Scanner来检测用户输入
System.out.println("请输入");
if (scan.hasNext()){ //scan.hasNext()判断是否输入
String input = scan.next() ; //用scan.next()来获取输入的内容
System.out.println("输入的是" + input); //输出
}
//Scanner属于IO流,不用的时候应该关掉,否则会一直占用资源
scan.close(); //停止运行
}
}
- 输入什么,就输出什么.
( 使用scan.hasNextLine() 和 scan.nextLine() 分别执行 检测和接受输入 )
import java.util.Scanner ; //引用Scanner类库
public class Demo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//创建Scanner来检测用户输入
System.out.println("请输入");
if (scan.hasNextLine()){ //scan,hasNextLine()判断是否输入
String input = scan.nextLine() ; //用scan.nextLine()来获取输入的内容
System.out.println("输入的是" + input); //输出
}
//Scanner属于IO流,不用的时候应该关掉,否则会一直占用资源
scan.close(); //停止运行
}
}
next() 与 nextLine() 的区别
next() :
一定检测到有效字符后才能结束输入
如果输入的有效字符之间由空白,如 Hello World,next() 方法会自动去掉
next() 以空白作为结束符或分割符
next() 不接受带有空格的字符串
nextLine() :
以Enter为结束符,nextLine() 方法返回的是输入回车之前的所有字符
Scanner进阶
输入一组数,计算平均值
public class Demo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//创建Scanner来检测用户输入
//和
double All = 0 ;
//输入的数字数量
int sum = 0 ;
//输入的数字
double a = 0 ;
System.out.println("输入");
while ( scan.hasNextDouble() ){
a = scan.nextDouble() ;
sum++ ;
All = All + a ;
System.out.println("已经输入了" + sum +"个数字,当前结果为" + All );
}
System.out.println("一共输入了" + sum +"个数字");
System.out.println("平均值为" + All/sum);
}
}