我需要檢查一個字符串是否包含空格逗號和多個@符號。我用下面的方法來做到這一點,但它對我來說工作不正常。檢查字符串是否包含空格和多個@符號
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