我正在尝试从用户那里获取值并将这些值存储在字符串数组中。可以通过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");
}
}
答案 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++;
}