我有EditText,因为我们可以输入所有键盘字符,如字母数字,表情符号,特殊字符。
我必须验证一些特殊字符并且不允许所有表情符号。需要将所有输入的不允许字符显示为警告对话框。
我尝试过许多表情符号,因为表情符号在下面的函数中只占用了空白区域,并且验证它只显示一个笑脸,有时显示两个笑脸。
以下是代码。
public static String validateSpecialCharacters(String message, Pattern messagePattern){
StringBuilder matchedCharacters = new StringBuilder();
Map<Character, Integer> uniqueSpecialCharacters = new HashMap<>();
Matcher m = messagePattern.matcher(message);
while (m.find()){
if(!uniqueSpecialCharacters.containsKey(message.charAt(m.start()))) {
uniqueSpecialCharacters.put(message.charAt(m.start()), 1);
matchedCharacters.append(message.substring(m.start(),m.end()));
}
}
return matchedCharacters.toString();
}
在if期间,if条件只变为真一次或两次。但我已经进入了不同的表情。问题是为第一个笑脸添加的前一个键与第二个相似。但实际上笑脸并不相似。如何解决这个问题。