[英]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.