import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入内容:");
String str=s.next();
System.out.println(str);
s.close();
}
}
如上 ,输入的是Hello World! 而控制台输出的却是 Hello。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入内容:");
String str=s.next();
System.out.println(str);
System.out.println("请再次输入内容:");
String str1=s.next();
System.out.println(str1);
s.close();
}
}
如上 ,第一次输入的是Hello World! 而控制台输出的却是 Hello,而第二次根本就没有让我输入,直接输出了上次没输出的。
那么,这是什么原理呢?
原因是next()方法不能接受空格的输入,如果next()方法在文本缓冲区里遇到空格,就会结束当前读取与返回。
上面的例子,第二次执行next()方法时,因为文本缓冲区还有内容,就会直接读取与返回本缓冲区的内容。
那么nextLine()方法呢?
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入内容:");
String str=s.nextLine();
System.out.println(str);
s.close();
}
}
可以看出,nextLine()方法可以接受空格的输入。
下面再举一个例子
使用next()方法给字符串数组依此赋值
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入三个字符串:");
String str[]=new String[3];
for(int i=0;i<3;i++){
str[i]=s.next();
}
System.out.println("三个字符串分别为");
for(int i=0;i<3;i++){
System.out.println(str[i]);
}
s.close();
}
}
使用nextLine()方法给字符串数组依次赋值
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入三个字符串:");
String str[]=new String[3];
for(int i=0;i<3;i++){
str[i]=s.nextLine();
}
System.out.println("三个字符串分别为");
for(int i=0;i<3;i++){
System.out.println(str[i]);
}
s.close();
}
}
可以看出,next()方法直接将“I love you!”分成了三个字符串,而nextLine()方法只把“I love you!”当成一个字符串。