如何解决快速变量问题
| 我的屏幕上有一个EditText对象(et_travel),它要求行驶里程。我这样获取数据: float travel = Float.parseFloat(et_travel.getText().toString());
if(travel > 40000){
我只是发现,如果有人在EditText中放置40000,一切正常,但是如果他们放置40,000(在数字中添加逗号),我就强制在float travel = ...语句上关闭。
如何在没有用户添加逗号的问题的情况下评估数字?
解决方法
这是Java吗?好像是,但是我想知道我是否弄错了。无论如何,我建议您从字符串中删除所有非数字类型的字符。一种方法是使用正则表达式。
在Java中执行此操作的方法可能如下:
String input = et_travel.getText().toString();
input = input.replaceAll(\"[^0-9]\",\"\");
float travel = Float.parseFloat(input);
...
这样,您首先从字符串中剥离了任何非数字值,然后尝试进行工作。显然在此之前进行一些错误检查(例如,输入不为null等)。但是,需要做的一项更改是您可能需要保留\'。\'字符(如果给定了非整数值)。这将需要稍微更改第一个正则表达式。
在此处检查:http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#replaceAll(java.lang.String,java.lang.String)
,您需要对输入进行一些验证。在将字符串转换为浮点数之前,先分析字符串。如果有任何\',则将其删除。如果只是垃圾,则拒绝输入,否则有人可能在输入中输入一个单词或其他内容,从而对您的程序造成破坏。
,查看
inputType限制用户输入
android:inputType=\"number\"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。