2015-02-10 42 views
0

我有一个任务来编写一个应用程序,该应用程序将接受来自用户的输入,并将每个答案存储在一个字符串数组中。此应用程序还必须检查用户输入的空值,并重新提示用户输入其答案。应用程序必须只重复空白的问题,因为这个应用程序有50个问题。循环检查用户输入的空白​​空间

这是到目前为止我的代码:

for(iLoop=0; iLoop<noOfQuest; iLoop++) 
     { 
      if(noOfEmails<1) 
      { 
       System.out.println("FILE_ERROR: Please ensure line \"noOfEmails\" is more than 0"); 
      } 
      if(noOfQuest==1) 
      { 
       System.out.println(prefinalMess); 
       System.out.println(questionArr[0]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(finalMess); 
      } 
      if(noOfQuest==2) 
      { 
       System.out.println(questionArr[0]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(prefinalMess); 
       System.out.println(questionArr[1]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(finalMess); 
      } 
      if(noOfQuest==3) 
      { 
       System.out.println(questionArr[0]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(questionArr[1]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(prefinalMess); 
       System.out.println(questionArr[2]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(finalMess); 
      } 
      if(noOfQuest==4) 
      { 
       System.out.println(questionArr[0]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(questionArr[1]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(questionArr[2]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(prefinalMess); 
       System.out.println(questionArr[3]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(finalMess); 
      } 
      if(noOfQuest==5) 
      { 
       System.out.println(questionArr[0]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(questionArr[1]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(questionArr[2]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(questionArr[3]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(prefinalMess); 
       System.out.println(questionArr[3]); 
       ansArray[iLoop]=ans.next(); 
       System.out.println(finalMess); 
      } 
     } 

我还必须开发新方法来检查每个答案的输入。

回答

0

这一点的方法来读取并通过命令行来检查用户输入:

public static List<String> readNLinesOfInput(int lines2Read){ 
    List<String> inputs = new ArrayList<String>(); 
    try (Scanner sc = new Scanner(System.in)) { 
     while(inputs.size() < lines2Read) { 
      System.out.println("Enter the "+(inputs.size()+1)+" line: "); 
      String line = sc.nextLine(); 
      if("".equals(line)){ 
       System.out.print("Empty lines a not allowed. "); 
       continue; 
      } 
      inputs.add(line); 
     } 
    } 
    return inputs; 
} 

你可以把它和每一行,像这样遍历:

public static void main(String[] args) { 
    List<String> list = readNLinesOfInput(50); 
    for(String line: list){ 
     System.out.println(line); 
    } 
} 
+0

非常感谢,让我当涉及到添加更多问题时,工作更容易:3 – 2015-02-10 14:50:02