2016-03-06 33 views
0

我已經嘗試過下面的代碼,但它沒有解決,我怎麼能做到這一點?我想比較在字符串類型數組中的字符串與在java中的另一個

for(int i=0;i<Name.length;i++){ 
    for(int j=i+1; j<Name.length;j++){ 
     if(Name[i].equals(Name[j])) 
     { 
      count++; 
      person[i]=Name[i]; 
     } 
    } 
} 
System.out.println("Repeated Names:"); 
for(int i=0; i<Name.length;i++){ 
    System.out.println(person[i]); 
} 
System.out.println("Count Of Repeated Names: "+count); 
} 
} 
+0

請修復代碼在你的答案。 –

+0

@Radiodef如何知道代碼是什麼? – Gendarme

+0

我也在想...... –

回答

2

在你的if語句,你指定名稱[I]以人[我],「I」將與循環,而不是隻有當事情被添加到人[]遞增遞增。相反,使用您的計數變量(確保計數之前的任何環的設置爲0):

if(Name[i].equals(Name[j])) 
{ 
    boolean found=false; 

    for (String s: person) { 
     if(Name[j].equals(s)) { 
      found = true; 
     } 
    } 
    if(!found) { 
     person[count] = Name[i]; 
     count++; 
    } 
} 

另外,還要注意增加的for循環中的if語句。如果您沒有檢查並找到名稱,則可能會多次添加相同的副本,並且可能會出現超出範圍的異常。所以,如果你的名字排列是:

{「約翰」,「約翰」,「約翰」}

你的循環將在第二次重新添加第二和第三約翰在第一次循環,第三約翰迭代。

最後打印的人陣而不打印空或垃圾,你可以再次使用計數變量:

for(int i=0; i<count;i++){ 
    System.out.println(person[i]); 
} 
相關問題