Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用正则表达式检查字符串是否包含表情符号_Java_Android_Regex_Emoji - Fatal编程技术网

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

Java 使用正则表达式检查字符串是否包含表情符号,java,android,regex,emoji,Java,Android,Regex,Emoji,我正在开发一个聊天应用程序,所以问题是一个人不应该能够发送一条空消息,所以我做了以下事情 空位 private boolean emptySpacecheck(String msg){ return msg.matches(".*\\w.*"); } 对于特殊字符 private boolean specCharcheck(String msg){ return msg.matches("[$&+,:;=\\\\\\\\?@#|/'<>.^*(

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

空位

 private boolean emptySpacecheck(String msg){

    return msg.matches(".*\\w.*");
}
对于特殊字符

private boolean specCharcheck(String msg){

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

    }
private boolean specCharcheck(字符串msg){
返回msg.matches(“[$&+,:;=\?@\ \ \ \ \ \ \ \/”。^*()%!-”;
}

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

下面的解决方案不是最好的解决方案,但它很有效,希望它对您的情况有所帮助

好了,这个修复程序应该可以工作了,它本质上会进入ascii值表,检查字符是否是日常使用的字符,如果不是,它可能是一个奇怪的字符(不是每天都使用)或表情符号,希望这能起作用

  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");
    }
stringuserinp=userinput;

对于(int i=0;i0&((int)userinp.charAt(i))无法解析符号“contains”我更新了代码抱歉在它不起作用之前这应该起作用我已经测试过了。为什么要使用正则表达式?为什么不只检查
msg.trim().isEmpty()