所以我的情况很难,需要一些建议。我正在尝试将我的两个字符串转换为整数,以便我可以在数学方程中使用它们。这是我尝试过的,但它在应用程序中给我带来了错误。
' 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是我之前命名的字符串。修剪是什么意思?
答案 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));
}
});