尝试访问数组后出现ArrayIndexOutOfBoundsException

时间:2014-01-05 20:46:26

标签: java split indexoutofboundsexception args

我想将一个String分成3个字符串,并将其中的每个元素(由“,”分隔)分成一个数组。

例如

java test 2,4,5,7 3,b,f,6 7,v,f,g

进入

Array1 = [2,4,5,7]    
Array2 = [3,b,f,6]    
Array3 = [7,v,f,g]

我的尝试:

import java.util.Arrays;

public class test {

public static void main(String[] args) {

String erstemenge[] = args[0].split(" ");   
String menge1 = erstemenge[0];
String menge2 = erstemenge[1];
String menge3 = erstemenge[2];

String [] m1 = menge1.split(","); 
String [] m2 = menge2.split(","); 
String [] m3 = menge3.split(","); 

System.out.println("Test:" + Arrays.toString(m1));
System.out.println("Test:" + Arrays.toString(m2));
System.out.println("Test:" + Arrays.toString(m3));

错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at CharSet.main(CharSet.java:43)

我错了什么?

2 个答案:

答案 0 :(得分:3)

您可能无法引用输入参数。看起来你正在运行:

java -cp . test 1,2,3 4,5,6 7,8,9

将args设置为

["1,2,3", "4,5,6", "7,8,9"]

但是你正在运行args[0].split(" ");

您只需设置

即可解决此问题
String menge1 = args[0];
String menge2 = args[1];
String menge3 = args[2];

或者以

运行程序
java -cp . test "1,2,3 4,5,6 7,8,9"

答案 1 :(得分:0)

如果你在命令行引用你的字符串,args将是一个单元素数组,args [0]将是由空格分隔的三个组。

如果不这样做,args将是一个三元素数组,而args [0]将没有空格可以拆分。