java.util.scanner方法未在for循环的基本情况下执行?
我是Java编程新手,我只想打印用户输入的n个字符串,其中“n”也是用户输入的测试用例数。下面是我的代码……但是nextLine()方法没有从基本情况下的用户那里获取输入(即在java.util.scanner方法未在for循环的基本情况下执行?,java,Java,我是Java编程新手,我只想打印用户输入的n个字符串,其中“n”也是用户输入的测试用例数。下面是我的代码……但是nextLine()方法没有从基本情况下的用户那里获取输入(即在inti=0)。 代码是 import java.util.Scanner; import java.io.InputStreamReader; public class Stringprint{ public static void main(String[] args){
inti=0
)。
代码是
import java.util.Scanner;
import java.io.InputStreamReader;
public class Stringprint{
public static void main(String[] args){
String str;
int testcase;
Scanner scanIn = new Scanner(System.in);
System.out.println("Enter the number of testcases :");
testcase = scanIn.nextInt();
for(int i = 0; i < testcase ; i ++){
System.out.println("Enter the String" + i + ":");
str = scanIn.nextLine();
System.out.println(string);
}
}
}
那么我哪里出错了..为什么它不在I=0
处询问输入字符串?我在这里做错了什么吗?Scanner.nextInt()正在将光标移过4,但移过新行
第一次调用Scanner.nextLine()时,输入以新行开始,因此返回空行。在调用
scanIn.nextLine()之后和循环之前,尝试使用scanIn.nextLine()
。调用nextInt()
后,该行尚未结束。因此,调用nextLine()
将返回新行字符 一个简单的修复:
添加“scanIn.nextLine();”在“testcase=scanIn.nextInt();”之后要吃掉nextLine()未使用的'\n'字符。问题是由于nextLine()。改为使用next(),它会很好地工作..可能的重复可能会很清楚:在这里你们可以更好地理解谢谢大家…:)你的评论对我帮助很大:)
Enter the number of testcases :
4
Enter the String0:
Enter the String1:
hello
hello
Enter the String2:
hai
hai
Enter the String3:
bye
bye