仅使用二维数组的一列 java
Only use one column of 2D array java
我有一个二维字符串数组频率:
String freq[][] = new String[26][2];
我只想将第一列的内容与 new String(freq)
一起使用,如果 freq 是普通数组,这将起作用。但是我想用我的二维数组的第一列来做这个,或者我必须使用两个一维数组来做这个:
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++;
}
}
}
谢谢! :)
我不确定我是否理解你想要实现的目标,但如果你只想遍历第一列,只需执行类似的操作并删除内部循环
for(int i = 0; i < words.length; i++) {
//Do stuff with words[i][0], e.g.
words[i][0] = Some_usefull_thing;
}
</pre>
使用 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());
我有一个二维字符串数组频率:
String freq[][] = new String[26][2];
我只想将第一列的内容与 new String(freq)
一起使用,如果 freq 是普通数组,这将起作用。但是我想用我的二维数组的第一列来做这个,或者我必须使用两个一维数组来做这个:
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++;
}
}
}
谢谢! :)
我不确定我是否理解你想要实现的目标,但如果你只想遍历第一列,只需执行类似的操作并删除内部循环
for(int i = 0; i < words.length; i++) {
//Do stuff with words[i][0], e.g.
words[i][0] = Some_usefull_thing;
}
</pre>
使用 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());