我想检查测试数组位置是否为空, 我有这段代码:
Scanner in = new Scanner(System.in);
String[] test = new String[3];
test=in.nextLine().split(" ");
if(test[0].equalsIgnoreCase("asd")&&test[1].equals("")){
System.out.println("Enter");
}
但是它说测试[1]超出了这个阵列的范围。
答案 0 :(得分:2)
你不应该在一行上声明你的数组,只是抛弃那个引用并在下一行获得一个新数组。第一步,改变
String[] test = new String[3];
test=in.nextLine().split(" ");
到
// \\s+ instead of " " consumes extra whitespaces
String[] test = in.nextLine().split(" ");
这是等效的,但不会丢弃额外的数组。接下来,您需要检查您的split
是否实际产生了您期望的值。你可以使用String.isEmpty()
。喜欢,
String[] test = "asd b".split(" ");
if (test.length > 1 && test[0].equalsIgnoreCase("asd") && test[1].isEmpty()) {
System.out.println("Enter");
}
哪个输出
Enter