Android如何在从gps纬度/经度获取位置时避免字符串中的垃圾字符

Android如何在从gps纬度/经度获取位置时避免字符串中的垃圾字符,android,gps,location,latitude-longitude,google-geolocation,Android,Gps,Location,Latitude Longitude,Google Geolocation,我正在通过编程方式从GPS(纬度/经度)接收位置地址;但是,有时我会收到带有特殊/不需要字符的位置地址 当我向服务器发送包含特殊/不需要的字符的地址时,服务器会拒绝这些地址 示例1:,德里,ä¸å?½ 例2:141;क 如何防止此问题?您可以使用正则表达式来避免此问题,并匹配所有US-ASCII码点类型的字符 String testText [] = new String[] { "delhi", "中å?½", "à¤", "à¥à¤• ", "tessst½",

我正在通过编程方式从GPS(纬度/经度)接收位置地址;但是,有时我会收到带有特殊/不需要字符的位置地址

当我向服务器发送包含特殊/不需要的字符的地址时,服务器会拒绝这些地址

示例1:,德里,ä¸å?½

例2:141;क


如何防止此问题?

您可以使用正则表达式来避免此问题,并匹配所有US-ASCII码点类型的字符

String testText [] = new String[] { "delhi", "中�", 
    "à¤", "à¥à¤• ", "tessst½", "some valid test text1213"
};

for (String str : testText) {
    if (str.matches("\\A\\p{ASCII}*\\z")) {
        //do something
        Log.d("TAG", str + " - String is valid");
    }
}
如果您使用的是Java 8,您可以这样做:

textInfoFromLocation.chars().allMatch(c -> c < 128)

更多信息可在此

中找到。您可以使用正则表达式来避免此问题,并匹配所有US-ASCII码点类型的字符

String testText [] = new String[] { "delhi", "中�", 
    "à¤", "à¥à¤• ", "tessst½", "some valid test text1213"
};

for (String str : testText) {
    if (str.matches("\\A\\p{ASCII}*\\z")) {
        //do something
        Log.d("TAG", str + " - String is valid");
    }
}
如果您使用的是Java 8,您可以这样做:

textInfoFromLocation.chars().allMatch(c -> c < 128)

更多信息可在此

中找到,谢谢你,Fedor。我试过这个。这里我只得到了真/假。我尝试了上面的,德里,¸¸å?½来检查这个字符串。我只是在撒谎。甚至,我想从垃圾字符中过滤字符串。谢谢你,Fedor。我试过这个。这里我只得到了真/假。我尝试了上面的,德里,¸¸å?½来检查这个字符串。我只是在撒谎。甚至,我想从垃圾字符中过滤字符串。