繁体   English   中英

如何检查某个字符是否出现在字符串中?

[英]How to check if some character appears in a string?

我只有一个 4 个字符的字符串

String test="CWRD"

我想检查字符串是否包含所有 4 个字符"CWRD"以及任何字符序列。 因此,如果像这样"WRDC""RDWC""CRDW" CRDW”这样的字符串,那么方法应该返回true。

通过String.contains(s)找到这个的一种方法

将字符串转换为字符数组并执行for循环,然后每个字符一一检查

char[] char = test.toCharArray();
for(char symbol :char ) {
 //Write Logic here
}

即使我们更改字符的更改顺序,是否有更好的方法来找到相同的字符串?

或许:

static boolean check(String str){
    return str.matches("[CWRD]{4}") && str.chars().distinct().count() == 4;
}

或者仅使用正则表达式,但可读性不高:

static boolean check(String str){
     return str.matches("(?!.*(.).*\\1)[CWRD]*");
}

测试:

public static void main(String[] args) {
    String[] str = {"CDRW","CDWR","CRDW","CRWD","CWDR","CWRD",
                    "DCRW","DCWR","DRCW","DRWC","DWCR","DWRC",
                    "RCDW","RCWD","RDCW","RDWC","RWCD","RWDC",
                    "WCDR","WCRD","WDCR","WDRC","WRCD","WRDC"};
    for(String s: str){
        System.out.println(check(s));
    }       
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM