public static String[][][] cleanUp(String[][][] array) {
for (int f = 0; f < array.length; f++) {
for (int g = 0; g < array[f].length; g++) {
int position = 0;
//boolean flag = false;
int count = 0;
for (int h = 0; h < array[f][g].length; h++) {
if (array[f][g][h].equals(array[f][g][h+1])) count++;
else {
ArrayList<String> temp = new ArrayList<String>(Arrays.asList(array[f][g]));
for (int i = count - 1; i > position; i--) {
temp.remove(i);
position = i-1 ;
}
temp.set(position, array[f][g][h] + " (" + count + ")");
}
}
}
}
return array;
}
从本质上讲,我想要做的是采取串的3D阵列并具有各自1D阵列中的它的重复值显示数量一起相同的值。举例来说,如果我有字符串的一个这样的数组:合并在一个阵列
[go, go, go, go, go, go]
[go, stop, stop, stop]
它会成为:
[go (5)]
[go (1), stop (3)]
我怎么能做到这一点,它是什么,我做错了什么?
您可以通过适当比较字符串开始(使用等于,不==) – Eran
据我所知,数组的2个外形尺寸是无关的重复数据删除。如果是这样的话,可能会更容易考虑如何为'String []'执行此操作,然后在两个for循环中将该方法的调用包装为迭代外部维度。 –
@Eran呃。我修正了这个问题,但它仍然不起作用。无论哪种方式,我都会得到一个'ArrayIndexOutOfBoundsException'。 –