我试图拆分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++;
}
答案 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行数据。