Java用户交互Scanner
Java提供了一个Scanner包,可以获取用户的输入
Java用户输入
基本语法
-
导入java.util包
1.Scanner类用于获取用户输入,它位于java.util包中
2.语法:import java.util.Scanner
-
创建Scanner对象
语法:Scanner input=new Scanner(System.in)
- 通过Scanner类的获取用户输入的数据
1.**获取字符串语法(不可接受空格):String name=input.next() **
2.获取字符串语法(可以接受空格):String name=input.nextLine()
3.获取整数语法:int num=input.nextInt()
-
通过Scanner类判断是否还有下一个输入项
1.语法:input.hasNext()
2.语法:input.hasNextLine()
-
注意
1.输入完毕之后,要关闭Scanner类,否则会一直占用资源
2.语法:input.close()
- 示例
//导入java.util包
import java.util.Scanner;
public class Demo01 {
public static void main (String [] agrs){
//创建Scanner对象
Scanner input=new Scanner(System.in);
System.out.println("使用next方法接受:");
//判断用户是否输入下一项
if(input.hasNext()){
//通过Scanner类的获取用户输入的数据
String name=input.next();
System.out.println("输入的内容为:"+name);
}
//关闭Scanner类
input.close();
}
}
Scanner方法
next()
- 一定要读取到有效字符后才可以结束输入
- 遇到空白符合,next()方法都会自动减去
- next()不能得到带有空格的字符串
nextLine()
- 以回车(Enter)为结束符,nextLine()方法返回的是输入回车之前的所有字符
- 可以获取空白
练习
输入多个数字,求平均值和总和,每输入一个数字回车确认,通过输入非数字来结束输入,并输出结果
答案:
//导入包
import java.util.Scanner;
public class Demo02 {
public static void main(String [] args){
//创建Scanner对象
Scanner input=new Scanner(System.in);
//总和
double sum=0;
//判断输入多少个数字
int m=0;
//通过循环判断是否还有输入,并且每输入一次进行统计
System.out.print("请输入数字:");
while(input.hasNextDouble()){
double num=input.nextDouble();
m++;
sum+=num;
System.out.println(m+"个数字的和为:"+sum);
System.out.println(m+"个数字的平均值为:"+(sum/m));
}
input.close();
}
}