[英]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.