如何从编辑文本中提取数字 (double/integer...)
how to extract number (double/integer...) from an edit text
我四处寻找其他问题,但找不到。
如果我有一个编辑文本并且我输入了一个数字,我如何提取这些数字是否是 double/integer...(我有两个编辑文本,分别称为 num1 和 num2)
当我尝试提取并使用 java 检查时,它不起作用。
我正在使用 toasts 来检查发生了什么。我将包括一些我尝试过的快照
Toast.makeText(this, "num1 is: "+parseDouble(String.valueOf(num1)) + "num2 is: "+parseDouble(String.valueOf(num1)) , Toast.LENGTH_SHORT).show();
此处程序崩溃且无法运行。
当我尝试时:
Toast.makeText(this, "num1 is: "+(String.valueOf(num1)) + "num2 is: "+(String.valueOf(num1)) , Toast.LENGTH_SHORT).show();
这是我在编辑文本中对 num1 和 num2 的结果:
当我尝试时
Toast.makeText(this, "num1 is: "+num1 + "num2 is: "+num1 , Toast.LENGTH_SHORT).show();
我得到以下信息:
为了更清楚地说明我是如何输入数字的:
然后输入两个数字:
在我按下计算总和按钮后,我得到了上面显示的祝酒词,我分别做了每一个。
如何正确提取 num1 和 num2?(我需要用正则表达式对其进行拆分还是有更好的方法)让我知道有哪些选项!
问题不是它崩溃了,而是它为什么不能正确提取数字,就像我在编辑文本中输入 2,id 称为 num1,然后在 java( i有 findviewid) 应该是 2...
Double.parseDouble(String.valueOf(num1))
这是做什么的?
你试图解析成一个double,num1
的字符串值,但是num1是一个编辑文本(一个完整的对象),这是你无法解析的。
你必须使用类似的东西:
Double.parseDouble(foo.getText().toString())
有什么区别?如果您调用 String.valueOf(num1)
,您将获得完整编辑文本对象的字符串值,但是,如果您使用 .getText().toString()
,您将解析 string 编辑文本中的值
要从您的 editText 中提取数字,请按照下列步骤操作:
- 从 editText 获取 Number 并将其转换为 int
// 确保对 editText 的值进行类型转换
int inputNumber = (int) editText.getText().toString()
- 然后简单地在你的吐司中展示它
Toast.makeText(this, "num1 is: + inputNumber" , Toast.LENGTH_SHORT).show();
- 计算两个数字
int inputNumber1 = (int) editText.getText().toString();
int inputNumber2 = (int) editText.getText().toString();
int sum = inputNumber1 + inputNumber2;
PS:为了让您的应用不崩溃,请确保您使用 int
连接了一个字符串
值,例如 ("" + sum)
我四处寻找其他问题,但找不到。
如果我有一个编辑文本并且我输入了一个数字,我如何提取这些数字是否是 double/integer...(我有两个编辑文本,分别称为 num1 和 num2)
当我尝试提取并使用 java 检查时,它不起作用。
我正在使用 toasts 来检查发生了什么。我将包括一些我尝试过的快照
Toast.makeText(this, "num1 is: "+parseDouble(String.valueOf(num1)) + "num2 is: "+parseDouble(String.valueOf(num1)) , Toast.LENGTH_SHORT).show();
此处程序崩溃且无法运行。
当我尝试时:
Toast.makeText(this, "num1 is: "+(String.valueOf(num1)) + "num2 is: "+(String.valueOf(num1)) , Toast.LENGTH_SHORT).show();
这是我在编辑文本中对 num1 和 num2 的结果:
当我尝试时
Toast.makeText(this, "num1 is: "+num1 + "num2 is: "+num1 , Toast.LENGTH_SHORT).show();
我得到以下信息:
为了更清楚地说明我是如何输入数字的:
然后输入两个数字:
在我按下计算总和按钮后,我得到了上面显示的祝酒词,我分别做了每一个。
如何正确提取 num1 和 num2?(我需要用正则表达式对其进行拆分还是有更好的方法)让我知道有哪些选项!
问题不是它崩溃了,而是它为什么不能正确提取数字,就像我在编辑文本中输入 2,id 称为 num1,然后在 java( i有 findviewid) 应该是 2...
Double.parseDouble(String.valueOf(num1))
这是做什么的?
你试图解析成一个double,num1
的字符串值,但是num1是一个编辑文本(一个完整的对象),这是你无法解析的。
你必须使用类似的东西:
Double.parseDouble(foo.getText().toString())
有什么区别?如果您调用 String.valueOf(num1)
,您将获得完整编辑文本对象的字符串值,但是,如果您使用 .getText().toString()
,您将解析 string 编辑文本中的值
要从您的 editText 中提取数字,请按照下列步骤操作:
- 从 editText 获取 Number 并将其转换为 int
// 确保对 editText 的值进行类型转换
int inputNumber = (int) editText.getText().toString()
- 然后简单地在你的吐司中展示它
Toast.makeText(this, "num1 is: + inputNumber" , Toast.LENGTH_SHORT).show();
- 计算两个数字
int inputNumber1 = (int) editText.getText().toString();
int inputNumber2 = (int) editText.getText().toString();
int sum = inputNumber1 + inputNumber2;
PS:为了让您的应用不崩溃,请确保您使用 int
连接了一个字符串
值,例如 ("" + sum)