我正在尝试将split()
函数的结果发送到字符串数组中,但我得到如下异常:
java.lang.ArrayIndexOutOfBoundsException:somenumber
我使用以下代码,但它返回该异常:
String[] temp;
temp = result.split(" ");
有什么建议吗?我想将字符串split()
函数的结果发送到字符串数组中,然后在for循环中打印值。
我在for循环中遇到一个超出范围的异常,我使用:
for (int i=0;i<=temp.length;i++)
{
out.println(temp[i]);
}
答案 0 :(得分:3)
String temp;
String[] split = result.split(" ");
temp = split[temp.length - 1];
您将String数组声明为单个字符串,然后以错误的方式声明新的String。
编辑:看到你更新了帖子:你必须使用少于for循环中的条件。如果一个数组有5个元素,那么最后一个元素将是4,而不是5.正确的代码是:
for(int i = 0; i < temp.length; i++){
System.out.println(temp[i]);
}
你甚至可以这样做:
for(String cur : temp){
System.out.println(cur);
}
答案 1 :(得分:0)
split()
方法(doc)会返回一个字符串数组,因此您的temp
变量应为String[]
。
答案 2 :(得分:0)
您的代码无法正常运行。 split
会返回String[]
。
String someString = "hello world";
String[] split = someString.split(" ");
String hello = split[0];
String world = split[1];
String lastWord = split[split.length-1];
答案 3 :(得分:0)
此?
String[] parts = original.split(" ");
答案 4 :(得分:0)
如果要将结果(数组的长度?)存储在生成split()函数的同一数组中,则不能。您将不得不创建另一个更长的数组:
String result = "Hello World";
String[] temp;
temp = result.split(" ");
String[] temp2 = Arrays.copyOf(temp, temp.length + 1);
temp2[temp.length] = String.valueOf(temp.length);
System.out.println(Arrays.toString(temp2));
输出为:[Hello,World,2]