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