2012-03-13 201 views
2

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

boolean flag = string.matches("\\s,@"); 

你們中的任何人能告訴我它出了什麼問題嗎?

+0

'String.matches()'只有當_entire_串所提供的正則表達式匹配的工作。這意味着你需要用錨'兩端。*'考慮到比賽的特點兩側。 – Alnitak 2012-03-13 11:44:49

回答

2

試試這個

Pattern pattern = Pattern.compile("[,\\s]|@.*@"); 
Matcher m = pattern.matcher(your_string); 
boolean b = m.find(); 
+0

感謝這有助於:) – user1266343 2012-03-13 23:29:23

1

您可以使用下面的循環,

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檢查。

1

我會用indexOf(char)去,這裏不需要regexp。

1

沒有一個正則表達式手冊在我身邊\ s,@查找一個字符的空格,後面跟着一個逗號。即文字串「,@」是唯一匹配的。

不指定如果每個字符的順序或數是很重要的。

+0

任何單個空白字符,而不是「」,但肯定的。 :) – Anonymoose 2012-03-13 11:46:39

+0

訂單重要嗎? – Chris 2012-03-13 11:50:57

相關問題