需求是檢查數組中的重複項並刪除它,數組中的其餘項必須移到左邊。Java數組和循環導致錯誤輸出
我寫了這個:
public class TestRepeat {
public static int deleteRepeats(char[] ch) {
int count = 0;
for (int x = 0; x < ch.length; x++) {
for (int y = x + 1; y < ch.length; y++) {
if (ch[x] == ch[y]) {
for (int k = y; k < ch.length - 1; k++) {//shifts the array to the right if its a duplicate
ch[k] = ch[k + 1];
}
ch[ch.length - 1] = ' ';//replaces the last array with a blank
}
}
}
for (int q = 0; q < ch.length; q++) {
if (ch[q] == ' ') {
count++;
}
}
return count;//returns the number of deleted items
}
public static void main(String[] args) {
char[] ch = {'k', 'a', 'm', 'o', 'k', 'm', 'y', 'm', 'k', 'k', 'x', 'm', 'm', 'o'};
System.out.print("The original array is: ");
System.out.println(ch);
System.out.println("Number of deleted characters: " + deleteRepeats(ch));
System.out.print("The new array is: ");
System.out.println(ch);
}
}
它應該返回:
原始數組:kamokmymkkxmmo
刪除字符數:8
新的陣列:kamoyx
而是將返回:
原始數組:kamokmymkkxmmo
刪除字符數:6
新數組是:kamoykxm
是什麼原因造成的問題,我該如何解決它?
這可能幫助:http://stackoverflow.com/q/17967114/59087 – 2014-08-29 04:45:23
計算器是不正確的門戶網站這個,請問這:HTTP:// codereview.stackexchange.com/ – NoobEditor 2014-08-29 04:45:28
@NoobEditor爲什麼這不是正確的門戶網站?他有一個編程錯誤,他不知道如何解決。 – 2014-08-29 04:48:29