Java,如何拆分列表的元素?

时间:2014-06-21 22:10:11

标签: java arrays

我试图拆分String[]数组的各个元素。该数组看起来像

{"0 1 0 1", "0 0 1 1", "1 1 0 1",...}. 

我想用正则表达式分割每个元素" ",一个空格。如果我这样做,它会使一个元素" 0 1 0 1"分为4个元素" 0"," 1"," 0"和" 1"?这是我的代码,它将元素添加到列表中(从文本文件中读取4行数字的行,用空格分隔)但是部分使用" split"方法不起作用。它对生成的数组没有任何影响。 String[]数组的名称为"已拆分"。

    int j=0;
    String thisLine = null;

        while(((thisLine=readThrough.readLine()) != null) && j<3){
             splitted[j]= thisLine;
             splitted[j].split(" ");
             j++;
        }

2 个答案:

答案 0 :(得分:4)

split()方法不会就地修改字符串,必须将返回的String[]分配给某些内容。如果要处理所有值,请尝试以下方法:

 String[] array = {"0 1 0 1", "0 0 1 1", "1 1 0 1"};
 List<String> answer = new ArrayList<String>();

 for (String str : array)
    for (String s : str.split(" "))
        answer.add(s);

循环运行后,answer将包含以下字符串值:

[0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1]

或者,如果您需要将输出结果作为字符串数组,则可以执行以下操作:

String[] output = answer.toArray(new String[answer.size()]);

答案 1 :(得分:0)

 splitted[j].split(" ");

此方法返回一个包含4个值的数组。您没有将split()方法的结果分配给任何变量。

在任何情况下,你都不能只为单个数组索引添加4个值(这就是你想要做的事情)。

您需要的代码如下:

String[] values = thisLine.split(" " );

for (int i = 0; i < values.length; i++)
    splitted[j++] = values[i];

当然不要忘记让你的数组足够大以容纳所有值。大小需要4 x行数据。