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'。 –