我对以下编写的代码感到困惑,因为我认为数组的长度(allCommands
)在没有任何内容时将为0。
字符串test
只有井号,然后我得到它后面的子串,然后用#
拆分。
String test = "#";
int beginIndex = test.indexOf("#");
test = test.substring(beginIndex+1);
String[] allCommands = test.split("#");
System.out.println("allCommands length: " + allCommands.length); // output: 1
System.out.println("allCommands array: " + Arrays.toString(allCommands)); // output: []
有人可以解释一下吗?谢谢!
答案 0 :(得分:1)
它是一个空字符串的数组。试试这个:
System.out.println(Arrays.toString(new String[]{""}));
它会打印[]
答案 1 :(得分:1)
它是一个零长度(空)字符串,在程序下面打印0。
.*
答案 2 :(得分:1)
因为当你使用test.split('#')
时,它返回一个由分割器计算的字符串数组,在这种情况下是空字符串,因为没有什么可以拆分了。这个空字符串进入String[] allCommands
,这就是为什么大小为1而数组为空。