2017-06-18 69 views
0

夥計們如何比較字符串和字符? 繼承人我的代碼:如何比較帶字符的字符串

private String s; 
private char c; 

public K(String string, char cc){ 
    setS(string); 
    setC(cc); 
} 

public void setS(String string){ 
    this.s = string; 
} 

public void setC(char cc){ 
    this.c = cc; 
} 

public boolean equals(K other){ 
    return s.equals(c); 
} 

public boolean try(){ 
    return s.equals(c); 
} 

如果我把我的方法「嘗試」,它總是返回即使我設置 兩個S =「s」和我的不實C =「S」。

+0

比較's.charAt(0)'和'C'。 – Li357

+0

如果字符串超過1個字符,它會不會是一個錯誤的對等?如何比較s到String.valueOf(c) – Tim

+0

你在這裏做錯了什麼。你的'equals'應該將當前的'K'對象(''this'')與其他'K'對象進行比較('other')。它不應該將's'與'c'進行比較,因爲這不涉及其他'K'(因此違反了「等於」合同)。還請避免使用無意義的名稱,如'K',''c','''''cc'等。 – RealSkeptic

回答

2

我會說我的任何初級開發者的第一件事是不使用單詞「try」作爲方法名稱,因爲try是java中的保留關鍵字。

其次認爲在你的方法中你需要考慮幾件事情。

如果您比較兩種不同類型的東西,它們將永遠不會相同。 一個字符串可以爲空。 字符串有多長。 第一個字符。

我會寫像方法:

public boolean isSame() { 
    if (s != null && s.length() == 1 { 
     return s.charAt(0) == c; 
    } 
    return false; 
} 
+0

謝謝你的工作 – user8120322

0

無論是使用焦炭的比較(假設旨意永遠是長度爲1):

return c == s.charAt(0); 

或者使用字符串比較:

return s.equals(new String(new char[]{c})); 
+0

'Character#toString'就足以滿足你的第二個例子。 –

+0

@JacobG。好點,其實有很多選擇... –

+0

@ErnestKiwele謝謝你的幫助,它幫助我很多 – user8120322