1
我以编程方式从GPS(纬度/经度)接收位置地址;不过,有时我会收到一个包含特殊/不需要字符的位置地址。Android如何从gps纬度/经度获取位置时避免字符串中的垃圾字符
当我将包含特殊/不需要字符的地址发送到服务器时,它们被服务器拒绝。
例1:,德里,AA½
例2:सà¥澶
我怎样才能避免这个问题?
我以编程方式从GPS(纬度/经度)接收位置地址;不过,有时我会收到一个包含特殊/不需要字符的位置地址。Android如何从gps纬度/经度获取位置时避免字符串中的垃圾字符
当我将包含特殊/不需要字符的地址发送到服务器时,它们被服务器拒绝。
例1:,德里,AA½
例2:सà¥澶
我怎样才能避免这个问题?
你可以使用正则表达式来避免这个问题,并匹配所有的字符都是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)
在情况下,如果你只是要检查每一个字符,请执行以下操作:
for (Character c : str.toCharArray()) {
if (c > 127) //character is invalid
Log.d("TAG","Character " + c + " is invalid");
}
更多信息可以在这里找到answer
谢谢Fedor。我试过这个。这里只有真/假。我尝试了上面的,德里,ä¸å?½检查这个字符串。我只得到错误。即使我想过滤垃圾字符中的字符串。 – harikrishnan