1

我试图通过使用 If/Else 来判断一个 android int 是否为空

public void onClick(View v) {



            EditText min = (EditText) findViewById(R.id.EditText01);
            EditText max = (EditText) findViewById(R.id.maxnum);
            EditText res = (EditText) findViewById(R.id.res);



            int myMin = Integer.parseInt(min.getText().toString());
            int myMax = Integer.parseInt(max.getText().toString());

            String minString = String.valueOf(myMin);
            String maxString = String.valueOf(myMax);

            int f = (int) ((Math.random()*(myMax-myMin+1))+myMin);

            if (minString.equals(""))
            {
                // Do Nothing
            }

            if (maxString.equals(""))
            {
                // Do Nothing
            }



                res.setText(String.valueOf(f));

没有任何错误,但是当我运行应用程序时,当我按下按钮时它会崩溃。

我也在尝试使用 null 而不是“”:

if (minString.equals(null))
{
    // Do Nothing
}

if (maxString.equals(null))
{
    // Do Nothing
}

我有一个崩溃。

请帮我!!!

4

5 回答 5

1
public boolean equals (Object object)

将指定对象与此字符串进行比较,如果相等则返回 true。该对象必须是具有相同字符且顺序相同的字符串实例。

所以它返回错误,所以如果你想检查它是否为空,那么 ==在对象上使用运算符。

if (maxString == null )

利用

        int myMin = 0;
        int myMax = 0;
        if(min.getText().toString()!="")
        myMin = Integer.parseInt(min.getText().toString());
        if(max.getText().toString()!="")
        myMax = Integer.parseInt(max.getText().toString());

        String minString = String.valueOf(myMin);
        String maxString = String.valueOf(myMax);

        int f = (int) ((Math.random()*(myMax-myMin+1))+myMin);

        if (minString.equals(""))
        {
            // Do Nothing
        }

        if (maxString.equals(""))
        {
            // Do Nothing
        }
于 2013-06-25T12:19:22.947 回答
1
       do if (maxString == null ) 
    {
        // do something 
      }
于 2013-06-25T12:15:13.403 回答
0

int 变量不能为空

如果要将 null 转换为 int,则由转换器决定是否设置 0、抛出异常或设置另一个值(如 Integer.MIN_VALUE)

因此,如果您再次将 int 转换为 string,您将无法获得 null 值。

于 2013-06-25T12:17:58.030 回答
0
  check = input.getText().toString();
 try {
    if (!check.equals("null")) {
        int max = Integer.parseInt(input.getText().toString());
        int constant1 = 1;
        int constant2 = 1;
        int nextNumber = 0;
        int count = 0;
        String fibResult = "";
        for (int i = 0; i <= max; i++) {
            fibResult += "F" + count + "=" + nextNumber + "\n";
            constant1 = constant2;
            constant2 = nextNumber;
            nextNumber = constant1 + constant2;
            count++;
        }
        dspResults.setText("\n" + fibResult);
    } else {
        dspResults.setVisibility(View.VISIBLE);
        dspResults.setText("Invalid");
        dspResults.setText(Gravity.CENTER);
        dspResults.setTextColor(Color.DKGRAY);
    }
} catch (IllegalArgumentException e) {
    e.printStackTrace();
}
于 2014-04-05T11:12:50.450 回答
0
public void onClick(View v) {



            EditText min = (EditText) findViewById(R.id.EditText01);
            EditText max = (EditText) findViewById(R.id.maxnum);
            EditText res = (EditText) findViewById(R.id.res);



            int myMin = Integer.parseInt(min.getText().toString());
            int myMax = Integer.parseInt(max.getText().toString());

            String minString = String.valueOf(myMin);
            String maxString = String.valueOf(myMax);

            int f = (int) ((Math.random()*(myMax-myMin+1))+myMin);
           {

            if (minString.equals(""))
            {
                // Do Nothing
                 res.setText(String.valueOf(f));
                  return false;

            }

            else if (maxString.equals(""))
            {
                // Do Nothing
                res.setText(String.valueOf(f));
                return false;

            }

             else  
             res.setText(String.valueOf(f));

           return true ; 
       } 
于 2014-04-08T06:09:48.033 回答