繁体   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