用nextLine()输入
next()和nextLine()的区别
next() 和 nextLine() 都可以输入一个字符串。
next()
next() 不能输入“_”(空格),它以其他有效字符开始,以空格或回车结束。
例如:
Scanner in = new Scanner (System.in);
String s = in.next();
在以上程序中,输入“空格abc空格123回车”,则s的值为“abc”。
nextLine()
nextLine() 可以输入“_”(空格),它可以以任何字符甚至是空字符开始,以回车结束。
例如:
Scanner in = new Scanner (System.in);
String s2 = in.nextLine();
在以上程序中,输入“空格ABC空格123回车”,则s的值为“_abc_123”( _代表空格);
输入“回车ABC”,则s的值为“”(空)。
输入n个包含空格的字符串
首先输入n的值,再用for循环输入n个字符串。
注意:n后的回车会占用一次循环,所以第n个字符串输不进去。
用以下输入为例:
4
123 44
sdf1 45e
sd 45 44
1 2 3 4 5 6 7
Scanner in = new Scanner (System.in);
int n = in.nextInt();
String[] str = new String[n] ;
for (int i = 0 ; i < n ; i ++) {//输入
str[i] = in.nextLine();
}
for(int i = 0 ; i < n ; i ++) {//打印
System.out.println(str[i]);
}
in.close();
以上程序的输出结果为:
123 44
sdf1 45e
sd 45 44
将以上程序进行修改:
Scanner in = new Scanner (System.in);
int n = in.nextInt();
String[] str = new String[n] ;
in.nextLine();//吃掉n后面的回车
for (int i = 0 ; i < n ; i ++) {//输入
str[i] = in.nextLine();
}
for(int i = 0 ; i < n ; i ++) {//打印
System.out.println(str[i]);
}
in.close();
以上程序的输出结果为:
123 44
sdf1 45e
sd 45 44
1 2 3 4 5 6 7