jdk5新特性(java.util.Scanner),可以用个scanner获取用户的输入。
// 创建一个扫描器对象,用于接收键盘输入
Scanner scn = new Scanner(System.in);
System.out.println("输入:"); // 输入hello world
// next()和nextLine()获取输入的字符串
// 使用之前使用hasNext()与hasNextLine()判断是否还有输入的数据
if(scn.hasNext()){
System.out.println("输入的内容为:"+scn.next());// hello
}
//nextLine() 判断是否还有输入
if(scn.hasNextLine()){
System.out.println("输入的内容为:"+scn.nextLine());//hello world
}
// 属于io流的类如果不关闭会一直占用资源,需要手动关闭
scn.close();
/*
* hello world
* next()和nextLine()的区别
* ---------------------next():-------------------------
* 1. 一定要读取到有效字符后才可以结束输入
* 2. 对输入有效字符之前遇到的都空白,next()会自动去除
* 3. 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
* 4. next()不能得到带有空格的字符串
* ---------------------nextLine()----------------------
* 1.以enter作为结束符,也就是说nextLine()可以获取输入回车以前的所有字符
* 2.可以获得空白
*/
Scanner进阶使用
/*---------------判断输入的类型---------------------------*/
// 创建一个扫描器对象,用于接收键盘输入
Scanner scn = new Scanner(System.in);
// 从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.println("请输入整数或小数:");
// 属于io流的类如果不关闭会一直占用资源,需要手动关闭
if(scn.hasNextInt()){
i = scn.nextInt();
System.out.println("整数数据:");
}else if(scn.hasNextFloat()){
System.out.println("输入的数据不是小数数据");
}else{
System.out.println("输入的数据非法");
}
scn.close();
/*---------------求总和和平均值--------------------------*/
// 输入多个数字,求其总和与平均值
//每输入一个数字用回车确认,通过输入的非数字来结束输入并输出执行结果
Scanner scn = new Scanner();
// 和
double sum = 0;
// 计算输入了多少数字
int m = 0;
/// 通过循环判断是否还有输入,并对其进行求和和统计
while(scn.hasNextDouble()){
double x = scn.nextDouble();
m++;//m= m + 1
sum += x;//sum = sum + x
System.out.println("你输入了第"+m+"个数据,当前的sum为:"+sum);
}
System.out.println(m+"个数的和是:"+sum);
System.out.println(m+"个数的平均值是:"+(sum/m);
scn.close();