如何检查用户输入的值是否有效?

时间:2013-01-22 19:52:52

标签: java android

我正在开发一个应用程序,用户可以选择在Latitude和Longitude的两个EditText视图中输入一组坐标。然后输入的坐标/位置将显示在地图上,这很有效。但是,如果用户输入无效值,应用程序崩溃,我需要阻止它。

纬度/经度值必须是例如35.27,并且使应用程序崩溃的事情是当有多个点“。”时。例如33.23.43。如何检查输入的值是否只有一个点?

我在这个领域并没有很多经验,而且我还是Android的新手,所以任何帮助都会非常感激。

4 个答案:

答案 0 :(得分:1)

我打算建议你检查你得到的字符串的长度,但因为1.5和153.163都是有效的,不起作用。我建议你使用`try / catch语句。例如

try{
    //do what ever you do with the numbers here
catch(Exception e){
//the user has inputted an invalid number deal with it here
}

答案 1 :(得分:1)

答案 2 :(得分:0)

bool badInput = countChar(s, '.')  > 1;

其中countChar是

int countChar(string s, char c)
{
    int counter = 0;
    for( int i=0; i<s.length(); i++ ) {
        if( s.charAt(i) == c ) {
            counter++;
        } 
    }
    return counter;
}

答案 3 :(得分:0)

只需使用regexp检查输入的有效性。

Pattern p = Pattern.compile("^(-)?\d*(\.\d*)?$");
Matcher m = p.matcher(inputString);
if (m.find()) { 
    ////Found
}
else {
  //Not found
}

现在在字段上实施focus listener以运行此有效性测试。

OR:您也可以从xml执行此操作。

在XML中添加属性editText

android:inputType="number|numberSigned|numberDecimal" 

签名浮点数

感谢。