有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (3) 个答案

  1. # 1 楼答案

    如果你真的必须使用matches,那么试试这种方法

    myString.matches(".*[$^~].*");
    

    matches检查正则表达式是否可以完全匹配字符串,所以除了您感兴趣的部分之外,您还需要让它匹配它之前和之后的部分,而.*应该处理这些部分

  2. # 2 楼答案

    使用图案和匹配器:

    Pattern pattern = Pattern.compile("[$~^]");
    Matcher matcher = pattern.matcher(input);
    if (matcher.find()) {
       // contains special characters
    } else {
       // doesn't contain special characters
    }
    
  3. # 3 楼答案

    如何检测一个字符串是否包含另一个字符串中的几个字符之一:

    如果您想要快速解决方案:

    public static void main(String[] args) {
        System.out.println(containsChars("sadsdd$sss^dee~", "$^~"));
    }
    
    public static boolean containsChars(String str, String chars) {
        for (int i = 0; i < chars.length(); i++) {
            char c = chars.charAt(i);
            for (int j = 0; j < str.length(); j++) {
                if (c == str.charAt(j)) {
                    return true;
                }
            }
        }
        return false;
    }
    

    当然没有正则表达式那么小或优雅,但它速度很快