java.util.scanner是java5的新特性通过Scanner类来获取用户的输入。
创建Scanner对象: Scanner s = new Scanner(System.in);
常用的方法:
1. 获取输入的字符串 next()和nextLine()
1.1 next()方法接收字符串
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scanner.hasNext()) {
String str1 = scanner.next();
System.out.println("输入的数据为:" + str1);
}
scanner.close();
}
输出结果为:
1.2 nextLine()方法接收字符串
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// next方式接收字符串
System.out.println("nextLine方式接收:");
// 判断是否还有输入
if (scanner.hasNextLine()) {
String str1 = scanner.nextLine();
System.out.println("输入的数据为:" + str1);
}
scanner.close();
}
输出的结果为:
可以看出两者的区别:
next()
1.一定要读到有效字符后才可以结束输入
2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉
3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
4.next()方法不能得到带有空格的字符串
nextLine()
1.以Enter为结束符,即nextLine()方法返回的是输入回车之前的所有字符
2.可以获得空白
2.获得数值类型的数据,在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取
Scanner sc=new Scanner(System.in);
找变量接收 sc.nextShort(); //short类型
sc.nextByte(); //byte
sc.nextInt(); //int
sc.nextLong(); //long
sc.nextFloat();
sc.nextDouble();
sc.nextBoolean();