Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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_Regex - Fatal编程技术网

Java 检查字符串是否至少包含两个不同的字符?

Java 检查字符串是否至少包含两个不同的字符?,java,regex,Java,Regex,我有一个给定的字符串,我需要检查这个字符串是否包含至少两个不同的字符/数字/下划线 有效字符串: “12aab” “aaaaaaa” “bbbc” 无效字符串: “a” “” “333” 提前谢谢 如果位置非常不同,则很难使用正则表达式 只需使用一组字符,如果字符集的大小为2,您肯定可以尝试此操作 public boolean valid(String s){ // valid if contains 2 different chars or more if(s == null ||

我有一个给定的字符串,我需要检查这个字符串是否包含至少两个不同的字符/数字/下划线

有效字符串:
“12aab”
“aaaaaaa”
“bbbc”

无效字符串:
“a”

“333”


提前谢谢

如果位置非常不同,则很难使用正则表达式

只需使用一组
字符
,如果字符集的大小为2,您肯定可以尝试此操作

  public boolean valid(String s){ // valid if contains 2 different chars or more
    if(s == null || s.length() < 2 )
        return false;
    char c = s.charAt(0);
    int i = 1;
    int size = s.length();
    while(i < size && c == s.charAt(i))
        i ++;
    return i != size;
  }
public boolean valid(字符串s){//valid如果包含2个或更多不同的字符
如果(s==null | | s.length()<2)
返回false;
字符c=s.charAt(0);
int i=1;
int size=s.length();
而(i
我会尝试向前看下一个字母/数字/下划线,然后确保它不是原始的:

(\w).*(?=\w)(?!\1)

您可以使用下面的正则表达式来匹配字符串,这些字符串有两个不同的字母或数字或
\uuu
符号

^\w*?(\w)(?!\1|$)\w*$

输出:

true
true
true
false
false
false

可以使用带有简单for循环的方法来检查传递的
字符串是否有效

boolean isValid(String s){
    char a = s.charAt(0); //store the first char of the String
    for(int i = 1; i < s.length(); i++)
        if(s.charAt(i) != a) //compare against every other char
            return true; // if at least one match, String is valid
    return false; // String consists of the same character.

}
将输出:

true
true
true
false
false
false

希望这有帮助

听起来像是一个家庭作业/作业问题!可能是家庭作业,但这是一个相当有趣的问题,看看在重新编译@user1422513实际上,人们付出了一些努力来帮助你完成家庭作业,付出了一些努力并接受了答案。人们想要他们的观点
System.out.println(isValid("12aab"));
System.out.println(isValid("_aaaaaaa"));
System.out.println(isValid("bbbc"));
System.out.println(isValid("a"));
System.out.println(isValid("______"));
System.out.println(isValid("333333333333"));
true
true
true
false
false
false