2016-10-13 25 views

回答

0

你可以使用正则表达式来避免这个问题,并匹配所有的字符都是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

+0

谢谢Fedor。我试过这个。这里只有真/假。我尝试了上面的,德里,ä¸å?½检查这个字符串。我只得到错误。即使我想过滤垃圾字符中的字符串。 – harikrishnan

相关问题