我以编程方式从 GPS(纬度/经度)接收位置地址;但是,有时我会收到带有特殊/不需要的字符的位置地址。
当我将包含特殊/不需要的字符的地址发送到服务器时,它们被服务器拒绝。
示例 1 :,德里,ä¸å?½
示例 2:सॠक
我怎样才能防止这个问题?
我以编程方式从 GPS(纬度/经度)接收位置地址;但是,有时我会收到带有特殊/不需要的字符的位置地址。
当我将包含特殊/不需要的字符的地址发送到服务器时,它们被服务器拒绝。
示例 1 :,德里,ä¸å?½
示例 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");
}
更多信息可以在这个答案中找到