如何使用while循环将字符串值放入从用户获得的字符串数组中

时间:2018-11-15 05:23:03

标签: java while-loop

我正在尝试从用户那里获取值并将这些值存储在字符串数组中。可以通过for循环轻松实现。但是需要使用while循环来完成它。帮我解决这个问题。

Scanner in = new Scanner(System.in); 
int testCases = Integer.parseInt(in.nextLine()); 
String[] arr1 = new String[testCases]; 

for(int i=0; i<testCases;i++) {
    String s = in.nextLine(); 
    arr1[i]=s; 
} 

for(int i=0; i<testCases;i++) { 
    try {
        Pattern.compile(arr1[i]); 
        System.out.println("Valid"); 
    } catch(Exception e) { 
        System.out.println("Invalid"); 
    }
} 

3 个答案:

答案 0 :(得分:0)

只需使用while循环:

Scanner in = new Scanner(System.in); 
int testCases = Integer.parseInt(in.nextLine()); 
String[] arr1 = new String[testCases];
int i = 0; 
int n = testCases;
while(i < n)
{
    String s = in.nextLine(); 
    arr1[i] = s;
    testCases--;
    i++;
} 
while(testCases < n)
{ 
    try { 
      Pattern.compile(arr1[testCases]); 
      System.out.println("Valid"); 
    } catch(Exception e) { 
      System.out.println("Invalid"); 
    }
    testCases++;
    i--;
} 

答案 1 :(得分:0)

与C / C ++ / Java-101一样:For循环和While循环可以(主要)通过以下方式进行互译:

for (initialization; condition; increment) {
  logic;
}

(大部分)等效于

initialization;
while(condition) {
    logic;
    increment;
}

(最大的区别是continue的行为。但是在这种情况下,它不会影响您)

答案 2 :(得分:0)

您可以在运行第二次while循环之前再次将i的值设置为0。

        Scanner in = new Scanner(System.in); 
        int testCases = Integer.parseInt(in.nextLine()); 
        String[] arr1 = new String[testCases]; 
        int i=0;
        while(i<testCases)
        {
            String s = in.nextLine(); 
            arr1[i]=s; 
            i++;
        } 
        i=0;
        while(i<testCases)
        { 
            try { Pattern.compile(arr1[i]); 
            System.out.println("Valid"); 
            } catch(Exception e) 
            { 
                System.out.println("Invalid"); 
            }
            i++;
        }