Java,如何拆分列表元素?

3

我将尝试分割一个 String[] 数组中的各个元素。该数组如下:

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

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

    int j=0;
    String thisLine = null;

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

你需要将splitted[j].split(" ")分配给某个变量。它不会改变splitted[j]的值。 - Diego Basch
2个回答

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()]);

0
 splitted[j].split(" ");

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

无论如何,您都不能只将4个值添加到单个数组索引中(这似乎是您试图做的事情)。

您需要编写类似以下的代码:

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

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

当然,不要忘记将数组的大小调整到足够大以容纳所有值。其大小需要为数据行数的4倍。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接