1.
-
基础的语法
Scanner s = new Scanner(System.in);
-
通过Scanner 类的next() 与nextLine() 方法获取输入的字符串,在读取前我们一般需要使用hasNext() 与 hasNextLine() 判断是否还有输入的数据
next() 和 nextLine()区别
-
next():
-
一定要读到有效字符后才可以结束输入
-
对输入有效字符之后遇到的空白,next() 方法会自动将其去掉
-
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
-
next() 不能得到带有空格的字符串
-
nextLine():
-
以enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所以字符
-
空白可以获得
列子
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
?
System.out.println("使用next方式接受:");
?
?
//判读用户有没有输入字符串
if (scanner.hasNext()){
String str = scanner.next();//程序会等待输入完毕
//使用next方式接受
System.out.println("输出内容为:"+str);
//凡是属于Io 流的类如果不会关闭会一直占用资源,要养成好的习惯用完就关掉
scanner.close();
?
输入hello world, next() ,只会输出 hello
Scanner scanner = new Scanner(System.in);
//创建一个扫描对象,用键盘来接受
System.out.println("使用next接受:");
//输出
?
if(scanner.hasNextLine()){
//如果用户输入字符串就进来
?
String str = scanner.nextLine();
//字符长定义用str ,来存储数据输入完毕
System.out.println("输出内容:"+str);
//输出字符串的内容,//注意这里字符串的内容要用拼接符+ str 来表示
scanner.close();
//关闭流程,否则会浪费资源
输入 hello world ,nextLine() ,则会全部输出
由此可见next() 和nextLine区别所在
例子三:不用判断语句来写Scanner,最基础的
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
?
System.out.println("使用next方式接受:");
?
String str = scanner.next();//程序会等待输入完毕
//使用next方式接受
System.out.println("输出内容为:"+str);
//凡是属于Io 流的类如果不会关闭会一直占用资源,要养成好的习惯用完就关掉
scanner.close();
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
?
System.out.println("使用next方式接受:");
?
String str = scanner.nextLine();//程序会等待输入完毕
//使用next方式接受
System.out.println("输出内容为:"+str);
//凡是属于Io 流的类如果不会关闭会一直占用资源,要养成好的习惯用完就关掉
scanner.close();
//这两种的输出结果跟上面2种当然也是一样的
其他nextint() 和nextLine()用法也是一样的
Scanner scanner = new Scanner(System.in);
int i =0;
float f =0.0f;
?
System.out.println("请输入整数");
?
if (scanner.hasNextInt()){
//如果输入的是整数就进来
i = scanner.nextInt();
System.out.println("整数数据"+i);
?
}else {
?
System.out.println("输入的不是整数!");
?
}
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数据"+f);
?
}else {zhenshu
?
System.out.println("输入的不是小数!");
?
}
scanner.close();
例题
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果;
Scanner scanner = new Scanner(System.in);
?
double sum =0;
//总和
int num = 0;
//计算输入多上个数字
while(scanner.hasNextDouble()){
//判断是否输入,并在里面对每一次进行求和统计
double x = scanner.nextDouble();
//定义x,存储,输入的值是double类型
num = num +1;
sum = sum + x;
?
?
}
System.out.println(num + "个数的和:"+ sum);
System.out.println(num + "平均数为:"+ (sum / num));
?
scanner.close();