我正在开发一个聊天应用程序,所以事情是一个人不应该发送一条空消息,所以我做了以下事情
对于空格
private boolean emptySpacecheck(String msg){
return msg.matches(".*\\w.*");
}
特殊字符
private boolean specCharcheck(String msg){
return msg.matches("[$&+,:;=\\\\\\\\?@#|/'<>.^*()%!-]");
}
如果有人试图发送空消息或只包含空格的消息,则上面的代码工作正常它会显示错误,当尝试仅将表情符号作为msg发送时,它会显示错误。如何使用正则表达式检查表情符号?
答案 0 :(得分:0)
以下解决方案不是最佳解决方案,但它可以帮助您在您的情况下发挥作用。
我们去这个修复应该工作它本质上进入ascii值表检查字符是否是使用的日常字符,如果不是它是一个奇怪的字符(不是每天使用)或表情符号,希望这工作。< / p>
String userinp= userinput;
for (int i=0;i<userinp.length()-1;i++){
if (((int)userinp.charAt(i))>0&&((int)userinp.charAt(i))<127)
System.out.println("not emoji");
else
System.out.println("emoji");
}