如果用户输入(双)包含多于一个点(.),我该如何检查?

问题描述 投票:0回答:2

首先,我是 Android 开发新手 😉

什么工作正常:-

我创建了一个计算器,用户可以在其中使用 EditText 输入数字并使用单选按钮选择运算符。 单击 Button 时:-

  1. 它用 EditText 的值创建变量 double
  2. 它返回尊重的答案(双倍)。

问题来了到达:- 如果用户在任何 EditText 中输入超过 1 个点 (.) Ex - [ 5.5.2 ] & 然后单击 Button 接下来发生的是你已经知道的想法😉

没错!碰撞 ! 那么,有什么办法可以解决吗? 🤗

欢迎任何建议😌

java android crash double
2个回答
1
投票

这不是一个 android 问题,它是一个 java 问题,无论如何你必须从 EditText 中获取文本作为字符串,然后检查字符串中 .(Point) 的计数

String line = EditText.getText.toString()
int count = line.length() - line.replace(".", "").length();

现在如果计数大于 1,它会导致崩溃,所以给用户消息并停止进程,否则做你想做的,你就保存了


-1
投票

它可能不是最好的解决方案,但它是解决方案之一。你能做的是;当用户输入双精度值时,您可以使用 Double.toString() 方法将其转换为字符串。然后你可以检查它是否包含多个“。” (点)。

伪会像这样

value = get double value from EditText()
str = value.toString()
checkFlag = check(str) //Checks if there are more then one dot

然后你可以根据 checkFlag 值做出决定

© www.soinside.com 2019 - 2024. All rights reserved.