Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java无效数组大小_Java_String - Fatal编程技术网

Java无效数组大小

Java无效数组大小,java,string,Java,String,我从控制台获取字符串输入。如果我输入“abcd”并以这种方式拆分 Scanner input = new Scanner(System.in); String[]stringInput = input.nextLine().toLowerCase().trim().split(""); 假设我输入了“abcd”作为输入,stringInput.length显示为5。但是,它应该是4对吗?怎么了,我在这里干什么?有什么想法吗?我如何解决这个问题?结尾有一个空字符串 使用 ..,数组可以有任何长度

我从
控制台
获取字符串输入。如果我输入“abcd”并以这种方式拆分

Scanner input = new Scanner(System.in);
String[]stringInput = input.nextLine().toLowerCase().trim().split("");

假设我输入了
“abcd”
作为输入,
stringInput.length
显示为
5
。但是,它应该是
4
对吗?怎么了,我在这里干什么?有什么想法吗?我如何解决这个问题?

结尾有一个空字符串

使用

..,数组可以有任何长度,并且尾部的空字符串将被丢弃


字符串后面总是有一个空格。因此您需要使用 在您的情况下,
abcd
和一个空格

Use split("", -1)
使用
split(“”)
时,在第一个索引处总是有一个额外的空数组元素

当然,您可以尝试:

System.out.println(Arrays.toString(stringInput));
输出:

[, a, b, c, d]

您可以在split方法中使用regex实现它,如下所示:

split("(?!^)")

String.split()确实不是从字符串中提取单个字符的方法。使用charAt()或substring()或toCharArray()。阅读有关方法split的工作原理,您将得到您的答案。。。。。。