[英]Java String Comparison
以下代碼是我程序的一部分
String [] currency = { "Euro" , "USD" , "Pound" };
private JComboBox
C1 = new JComboBox(currency),
C2 = new JComboBox(currency);
String s,r;
double i,j =0,k=0;
................
private ActionListener d = new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object obj = C2.getSelectedItem();
r = "" + obj;
st.setText(r);
System.out.println(r);
System.out.println(currency[0]);
if (r == currency[0])
{
k=1;
}
if (r == currency[1])
{
k = 1.161;
}
if (r == currency[2])
{
k= 0.954;
}
System.out.println(k);
}
};
當打印r時,輸出與currency [0]的輸出相同。 問題在於,k始終被視為0.00。 我認為這與字符串的比較有關。
謝謝。
將equals
用於字符串比較,例如"string".equals("other string");
還是你的情況
r.equals(currency[0])
在對象上使用==
,您僅在比較引用(即,內存位置,而不是實際的內容相等)。
您可能還對使用Enums
作為貨幣樣本感興趣。
比較兩個字符串
r.equals(currency[0])
要么
r.equalsIgnoreCase(currency[0])
當您不關心字符的大小寫(大寫或小寫)時
您應該使用equals
進行字符串比較,並記住將非null
的字符串放在最前面:
"Hello".equals(myString)
或者您的情況:
r.equals(currency[0])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.