只使用一列2D数组java

时间:2015-01-21 11:43:56

标签: java arrays 2d

我有一个2D String数组freq: String freq[][] = new String[26][2]; 并且我想仅使用new String(freq)使用第一列的内容,如果freq是普通数组,它将起作用。但是我想用2D数组的第一列做这个,或者我必须使用两个1D数组来做到这一点:

String freq[][] = new String[26][2];
    int free = 0;
    for (int b = 0; b < words.length; b++) {
        for (int l = 0; l < words[b][0].length(); l++) {
            if (new String(freq[0]).indexOf(words[b][0].charAt(l)) < 0) {
                freq[free][0] = Character.toString(words[b][0].charAt(l));
                free++;
            }
        }
    }

谢谢! :)

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解你想要实现的目标,但是如果你只想迭代第一列就做这样的事情而只是放弃内循环


for(int i = 0; i < words.length; i++) {
  //Do stuff with words[i][0], e.g.
  words[i][0] = Some_usefull_thing;
}

答案 1 :(得分:0)

使用StringBuilder并连接所有值(将8替换为平均字长):

final StringBuilder builder = new StringBuilder(words.length * 8);
for (String[] nestedWords : words)
{
    builder.append(nestedWords[0]);
}

return builder.toString();

你也可以在java 8中这样做:

return Arrays.stream(words).map(a -> a[0]).collect(Collectors.joining());