繁体   English   中英

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

[英]How to convert string to 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是我以前命名的字符串。 修剪是什么意思?

像这样替换您的代码

  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时将导致数字格式异常。

您在做什么错是给.setText()函数提供一个Integer值。 除此之外,一切都是正确的。 尝试这个 -

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); 

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

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

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

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

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));

        }
    });

将结果从整数转换为字符串

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM