【发布时间】:2020-03-28 05:08:51
【问题描述】:
大家好,显然我尝试在 while 循环中使用 try-catch 并使用静态字段。我的情况是我创建了一个扫描仪来获取用户输入并使用字符串拆分方法尝试将字符串拆分为只有 2 个空格(“”)的数组。不知何故,当用户只输入字符串时,我使用了 try-catch,第二个 2 数组将为空,它将是 ArrayIndexOutOfBoundsException。显然,当我第一次使用这个 try-catch 时,当我输入 2 个由空格分隔的字符串时,它会打印出两个数组,但是当我只输入 1 个字符串时,它会在下一行中以某种方式打印出来,这意味着第二个字符串数组将为 null 它会打印出来第二个字符串数组,显然第二个字符串数组是我之前输入的字符串。 我想要的是当我键入只想要字符串数组时,第二个字符串数组将显示为空。 如果您尝试代码会更好,谢谢。
import java.util.Scanner;
public class FinchTest {
static String str1;
static String str2;
public static void main(String[] args) {
do {
try {
Scanner scan = new Scanner(System.in);
String userInput= scan.nextLine();
String[] SpaceSpliter = userInput.split(" ");
str1 = SpaceSpliter[0];
str2 = SpaceSpliter[1];
System.out.println(str1+str2);
} catch ( java.lang.ArrayIndexOutOfBoundsException e) {
if(str2==null) {
System.out.println(str1+str2);
}
else {
System.out.println(str1+str2);
}
}
}while(true);
}
}
我认为问题是因为全局字段
【问题讨论】:
-
你想要什么不清楚。请检查您的问题并清楚说明。
标签: java while-loop try-catch field