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