如何将字符串转换为整数?

时间:2012-03-28 04:08:27

标签: java string integer

所以我的情况很难,需要一些建议。我正在尝试将我的两个字符串转换为整数,以便我可以在数学方程中使用它们。这是我尝试过的,但它在应用程序中给我带来了错误。

'     equals.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            // TODO Auto-generated method stub

                            num1 = edit.getText().toString();
            num2 = edit.getText().toString();

            int first = Integer.parseInt(num1);
            int second = Integer.parseInt(num2);

            edit.setText(first + second);

        }
    });

我做错了吗? 谢谢你的帮助。

编辑: 是的,这是Java。 num1和num2是我之前命名的字符串。修剪是什么意思?

5 个答案:

答案 0 :(得分:3)

替换你的代码

    num1 = edit.getText().toString();
    num2 = edit.getText().toString();
    num1=num1.trim();
    num2=num2.trim();
    int first = Integer.parseInt(num1);
    int second = Integer.parseInt(num2);

如果字符串变量中有任何尾随空格,那么在将其转换为int或float时会导致数字格式异常....

答案 1 :(得分:2)

你做错了是给.setText()函数一个整数值。 除此之外,一切都是正确的。 试试这个 -

edit.setText(""+(first+second));

编辑:

当且仅当在EditText中输入数值时,上述答案才有效。否则,它将不会被解析为整数,您将收到错误。

现在,您还可以限制EditText,以便它只能将数字作为输入。

为此,您可以执行以下任一操作 -

1.在main XML文件中,您可以将其作为EditText的属性包含 -

<EditText android:inputType="number".....>

这将弹出数字小键盘而不是qwerty小键盘。

2.如果您想在Java File中以编程方式执行此操作,

EditText et = new EditText(this); 
et.setInputType(InputType.TYPE_CLASS_NUMBER); 

答案 2 :(得分:1)

确保验证用户输入的文本。我的意思是你必须验证输入的文本实际上是一个整数。

//trim function will remove leading or trailing blank spaces.
num1 = edit.getText().toString().trim();
num2 = edit.getText().toString().trim();

使用Sysout打印num1并检查它是否实际上是一个数字。

答案 3 :(得分:0)

将结果从整数转换为String

edit.setText(Integer.toString(first + second));

答案 4 :(得分:0)

不太确定,但这是我的尝试:

equals.setOnClickListener(new View.OnClickListener() {
    public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = edit.getText().toString().trim();
            num2 = edit.getText().toString().trim(); // same as num1 why???

            int first = Integer.parseInt(num1);
            int second = Integer.parseInt(num2); // same as first why???

            // convert to text after add them together
            edit.setText("" + (first + second));

        }
    });