我的屏幕上有一个EditText对象(et_travel),要求行进里程。我抓住这样的数据:
float travel = Float.parseFloat(et_travel.getText().toString());
if(travel > 40000){
我发现,如果有人在EditText中放入40000,一切正常,但如果他们放40,000(在数字上添加一个逗号),我强行关闭float travel = ...语句。
如何在用户添加逗号的情况下评估数字而不会出现问题?
答案 0 :(得分:0)
您需要的是输入的一些验证。在将字符串转换为float之前解析字符串。如果有','然后删除它们。如果只是垃圾,那么拒绝输入,否则有人可能会在输入中输入一个单词或任何其他内容并对您的程序造成严重破坏。
答案 1 :(得分:0)
退房 inputType限制用户输入
android:inputType="number"
答案 2 :(得分:0)
这是用Java吗?它似乎是,但我想知道我是否错了。无论如何,我建议你删除字符串中不是数字类型的所有字符。一种方法可能是使用正则表达式。
在Java中执行此操作的方法可能如下:
String input = et_travel.getText().toString();
input = input.replaceAll("[^0-9]", "");
float travel = Float.parseFloat(input);
...
这样,您首先从字符串中删除任何非数字值,然后尝试执行您的工作。显然在此之前做一些错误检查(比如输入不是null等)。 需要进行一项更改是您可能需要维护'。'字符(如果给出非整数值)。这需要稍微更改第一个正则表达式。