使用正则表达式检查String是否包含表情符号

时间:2018-03-01 02:11:28

标签: java android regex emoji

我正在开发一个聊天应用程序,所以事情是一个人不应该发送一条空消息,所以我做了以下事情

对于空格

 private boolean emptySpacecheck(String msg){

    return msg.matches(".*\\w.*");
}

特殊字符

private boolean specCharcheck(String msg){

        return msg.matches("[$&+,:;=\\\\\\\\?@#|/'<>.^*()%!-]");

    }

如果有人试图发送空消息或只包含空格的消息,则上面的代码工作正常它会显示错误,当尝试仅将表情符号作为msg发送时,它会显示错误。如何使用正则表达式检查表情符号?

1 个答案:

答案 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");
    }