Scanner类
1.next()和 nextLine()
- Scanner类获取用户输入
- next()不能得到带有空格的字符串,必须得到有效的输入才能结束输入,有效输入的后面空白会被当成结束符。
- nextLine()可以接受带有空格的字符串。以Enter 为结束符。
2、测试代码
2.1、next()使用
package com.Macong.scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,接收键盘数据
Scanner input1 = new Scanner(System.in);
System.out.println("请输入数据:");
//判断用户有没有输入字符串
if (input1.hasNext()) {
String str = input1.next();
System.out.println("输入的数据为:" + str);
}
//凡是属于IO流得类。如果不会关闭会一直占用资源,要养成良好的习惯用完就关掉
input1.close();
}
}
结果:字符串后面的空白,被认为是结束符
2.2、nextLine()使用
package com.Macong.scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
//创建一个scanner 对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine()接收数据:");
if(scanner.hasNextLine())
{
String str = scanner.nextLine();
System.out.println("输入的数据为:" + str);
}
//凡是属于IO流得类。如果不会关闭会一直占用资源,要养成良好的习惯用完就关掉
scanner.close();
}
}
结果:可以接受空白,结束符为回车键
2.3、nextInt和nextFloat区别
package com.Macong.scanner;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
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 if(scanner.hasNextFloat()) {
f = scanner.nextFloat();
System.out.println("输入浮点数:" + f);
} else {
System.out.println("输入有误,请输入浮点数或者整数");
}
scanner.close();
}
}
2.4、nextInt (),多个数字求平均,非数字结束输入。
我们可以输入多个数字,并求总和与平均数,每输入一个数字回车确认,通过输入非数字来结束输入并输出执行结果。
//-----------------------------------------------------------------
package com.Macong.scanner;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
//我们可以输入多个数字,并求总和与平均数,每输入一个数字回车确认,通过输入非数字来结束输入并输出执行结果。
Scanner scanner = new Scanner(System.in);
int a = 0;//求和
int b = 0;//计算有多少个数
int c = 0;//接受数据
System.out.println("请输入数据;");
//通过循环判断是否还有输入,并在里面每一次进行求和统计
while(scanner.hasNextInt())
{
c = scanner.nextInt();
b++;
a += c;
}
System.out.println("总和为:" + a);
System.out.println("输入的数平均数为:" + (a / b));
}
}