当输入前面是整数输入时,将跳过字符串变量的输入
input for a String variable is skipped when it is preceeded by an integer input
我正在练习扫描仪的用法和语法,下面是我编写的代码,我在其中尝试从用户那里获取 4 个输入:
Scanner s= new Scanner(System.in);
int a = s.nextInt();// taking an integer as input, it works fine.
String b = s.nextLine();//was supposed to take a string input, but not working
String c=s.nextLine();//takes a string as input from user
String d=s.nextLine();//takes another string as input from user
System.out.println("integer entered: "+a);
System.out.println("first string entered: "+b);
System.out.println("second string entered: "+c);
System.out.println("third string entered: "+d);
但用户只能提供 3 个输入,第一个整数和其他两个字符串输入,通过打印这 4 个变量的值,很明显第一个字符串 String b
的输入是 skipped.I 然后尝试重新排列输入的顺序,即
String b = s.nextLine();//takes a string input
int a = s.nextInt();// taking an integer as input
String c=s.nextLine();//was supposed to take a string as input from user
String d=s.nextLine();//takes another string as input from user
在这种情况下,将跳过第二个字符串 String c
的输入。
那么,是不是因为整数输入跳过了下一个字符串输入?
这是一个常见问题。
固定码
Scanner s= new Scanner(System.in);
int a = s.nextInt();
s.nextLine();
System.out.print("Enter a string: ");
String b = s.nextLine();
System.out.print("Enter another string: ");
String c=s.nextLine();
System.out.print("Enter one more string: ");
String d=s.nextLine();
System.out.println(a+"\n"+b+d+c);
参考:
Scanner is skipping nextLine() after using next() or nextFoo()?
我正在练习扫描仪的用法和语法,下面是我编写的代码,我在其中尝试从用户那里获取 4 个输入:
Scanner s= new Scanner(System.in);
int a = s.nextInt();// taking an integer as input, it works fine.
String b = s.nextLine();//was supposed to take a string input, but not working
String c=s.nextLine();//takes a string as input from user
String d=s.nextLine();//takes another string as input from user
System.out.println("integer entered: "+a);
System.out.println("first string entered: "+b);
System.out.println("second string entered: "+c);
System.out.println("third string entered: "+d);
但用户只能提供 3 个输入,第一个整数和其他两个字符串输入,通过打印这 4 个变量的值,很明显第一个字符串 String b
的输入是 skipped.I 然后尝试重新排列输入的顺序,即
String b = s.nextLine();//takes a string input
int a = s.nextInt();// taking an integer as input
String c=s.nextLine();//was supposed to take a string as input from user
String d=s.nextLine();//takes another string as input from user
在这种情况下,将跳过第二个字符串 String c
的输入。
那么,是不是因为整数输入跳过了下一个字符串输入?
这是一个常见问题。
固定码
Scanner s= new Scanner(System.in);
int a = s.nextInt();
s.nextLine();
System.out.print("Enter a string: ");
String b = s.nextLine();
System.out.print("Enter another string: ");
String c=s.nextLine();
System.out.print("Enter one more string: ");
String d=s.nextLine();
System.out.println(a+"\n"+b+d+c);
参考: Scanner is skipping nextLine() after using next() or nextFoo()?