有問題的方法如下。這種方法應該採取一個字符串,並使用bag adt返回一個項目的頻率。我有它的工作,但是,如果我(例如)進入「測試」,它將顯示輸出T,S和T與他們各自的(儘管是正確的)頻率。但是,我希望輸出只是T,S的頻率。如何查找已經打印的元素並從打印中跳過它們?
public int getFrequency(String str){
int index=0;
char[] nArray = new char[sArray.length];
for(int i=0;i<sArray.length; i++){
char a = sArray[i];
String s = Character.toString(a);
index = consonants.getFrequencyOf(s);
if(index != 0 && consonants.contains(s)==true){
for(int x=0;x<nArray.length;x++){
if(nArray[i] == sArray[x]){
continue;
}
else{
System.out.print(s + ": ");
System.out.println(index);
nArray[i] = sArray[i];
break;
}
}
}
}
return index;
}
聲明'x','sArray'和'consonants'在哪裏? –
該功能沒有多大意義。你從來沒有真正使用'str',我猜想它被翻譯成'sArray'在別的地方。您返回的'index'值只適用於最後一個字符。 – pickypg