如何从编辑文本中提取数字 (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)