今天来看看scanner用法
格式:
Scanner scanner= new Scanner(System.in);
下面为了方便常常加上:
System.out.println("使用next的方式接收:");
在使用之后最好将scanner给清除,格式为:
scanner.close();//关闭,以免占用资源;
例一.编写一个程序,判断输入的是否为字符串
public class Damo01 {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
System.out.println("使用next的方式接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()){
//使用next的方式接收;
String str = scanner.next();//程序等待用户输入完毕;
System.out.println("输出的内容为:"+str);
}
scanner.close();//关闭,以免占用资源;
}
}
上述代码使用的都是next(),你会发现,如果我们输入hello
运行结果为:
但如果我们输入hello world,运行结果却还是为hello;
遇到这种情况,我们只需要将关键词next换成 nextline就行了;
例二:
public class Damo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner (System.in);
System.out.println("使用nextline接收");
if (scanner.hasNext()){
String str = scanner.nextLine();
System.out.println("输出的内容为:"+str);
}
scanner.close();
}
}
运行时输入hello world结果为:
两者具体不同见下图:
例三,由用户输入数字,当用户输入不是数字停止程序,统计出输入数字的总和与平均数,及每次输入后的总值与平均值。
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//和:
double sum = 0;
//计算输入了多少个数字:
int m = 0;
//通过循环判断是否还有输入,并在里面进行求和统计:
System.out.println("请输入数据:");
while(scanner.hasNextDouble()){
double x = scanner.nextDouble();
m++;//m=m+1;
sum = sum + x;
System.out.println("你输入了第"+m+"个数据,当前的总和sum="+sum+"当前的平均值为:"+(sum/m));
}
System.out.println("和为:"+sum);
System.out.println("平均值为:"+(sum/m));
scanner.close();
}
}