无法比较空字符串

时间:2014-03-04 18:20:10

标签: java android if-statement syntax logical-operators

你可以用e1 =“1”,e2 =“2”,e3 =“”

这样的条件检查这个代码为什么会跳转到其他地方
if (e1=="" || e2=="" || e3==""){
                Context context = getApplicationContext();
                CharSequence text = "Fill in all required fields!";
                int duration = Toast.LENGTH_SHORT;
                Toast toast = Toast.makeText(context, text, duration);
                toast.setGravity(Gravity.CENTER|Gravity.CENTER, 0, 0);
                toast.show();
            }
            else {
                m=Integer.parseInt(e1);
                std=Integer.parseInt(e2);
                nhv=Integer.parseInt(e3);
            rsl=((std*std)*((t1+t2)*(t1+t2)))/((m-nhv)*(m-nhv));
            if (Math.round(rsl) < rsl) {
                rsl = Math.round(rsl) +1; 
            } 
            else {
                rsl=Math.round(rsl);
            }
            et4.setText(""+rsl);
        }

3 个答案:

答案 0 :(得分:1)

对于String比较,您需要使用.equals(),例如e1.equals(""),或argubly better "".equals(e1)
第二种形式是更好的,因为它永远不会抛出NullPointerException

请注意,只有基元int等应与==进行比较,其他所有内容都应与Object#equals(Object)进行比较。

答案 1 :(得分:0)

由于您正在检查String是空或空,use the method是否为此设计:

if (myString != null && !myString.isEmpty()) 
{ 

// doSomething

}

其他任何东西都容易出错或只是不清楚。

注意:这在Android 2.3中可用。

Google还通过TextUtils

提供此功能
if (TextUtils.isEmpty(value))
{
    // do something
}

内部TextUtils.isEmpty()检查String的长度是否为0(并进行空检查)。

答案 2 :(得分:0)

只需使用:

if (e1.isEmpty() || e2.isEmpty() || e3.isEmpty())