快速变量问题

| 我的屏幕上有一个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\"
    

要回复问题请先登录注册