我有以下代码:
public void convert()
{
String val = (String) spinner1.getItemAtPosition(spinner1.getSelectedItemPosition());
System.out.println(spinner1.getItemAtPosition(spinner1.getSelectedItemPosition()));
System.out.println(val);
if(val == "mm" || val == "cm" || val == "m" || val == "km")
{
System.out.println("got into if statements");
initiateLengthConvert();
}
System.out.println("never got it");
}
现在,当第一个打印语句打印出来时,如果我选择" mm",则打印出来:
mm
mm
never got it
为什么不会传入if语句? " VAL"并且可能性相匹配,所以对我来说没有任何意义。
答案 0 :(得分:2)
使用.equals
来比较字符串而不是==
。
if(val.equals("mm") || val.equals("cm") || val.equals("m") || val.equals("km"))
阅读
What is the difference between == vs equals() in Java?
而不是System.out.println("...");
使用Log
答案 1 :(得分:1)
试试这个..
==
总是只比较两个引用。 String
您应该使用.equals("")
if(val.equals("mm") || val.equals("cm") || val.equals("m") || val.equals("km"))
{
System.out.println("got into if statements");
initiateLengthConvert();
}