簡體   English   中英

Java字符串比較

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM