我需要检查一个字符串是否包含空格逗号和多个@符号。我用下面的方法来做到这一点,但它对我来说工作不正常。检查字符串是否包含空格和多个@符号
boolean flag = string.matches("\\s,@");
你们中的任何人能告诉我它出了什么问题吗?
我需要检查一个字符串是否包含空格逗号和多个@符号。我用下面的方法来做到这一点,但它对我来说工作不正常。检查字符串是否包含空格和多个@符号
boolean flag = string.matches("\\s,@");
你们中的任何人能告诉我它出了什么问题吗?
试试这个
Pattern pattern = Pattern.compile("[,\\s]|@.*@");
Matcher m = pattern.matcher(your_string);
boolean b = m.find();
感谢这有助于:) – user1266343 2012-03-13 23:29:23
您可以使用下面的循环,
boolean isWhiteSpace = false;
boolean isDoubleOccur = false;
boolean flag = false;
for(int i =0; i<str.length; i++)
{
if(str.charAt(i) == ' ')
isWhiteSpace = true;
else if(str.charAt(i) == '@'){
if(flag == true){
flag = false;
isDoubleOccur = true;
}
flag = true;
}
}
然后你就可以同时使用isWhiteSpace和isDoubleOccur检查。
我会用indexOf(char)去,这里不需要regexp。
没有一个正则表达式手册在我身边\ s,@查找一个字符的空格,后面跟着一个逗号。即文字串“,@”是唯一匹配的。
不指定如果每个字符的顺序或数是很重要的。
任何单个空白字符,而不是“”,但肯定的。 :) – Anonymoose 2012-03-13 11:46:39
订单重要吗? – Chris 2012-03-13 11:50:57
'String.matches()'只有当_entire_串所提供的正则表达式匹配的工作。这意味着你需要用锚'两端。*'考虑到比赛的特点两侧。 – Alnitak 2012-03-13 11:44:49