2012-07-20 45 views
0

我想知道下面的代碼有什麼問題。如何驗證字符串爲「@」符號並傳遞給if語句

public void onClickSave (View cs) 
{ 
    Pattern pattern = Pattern.compile("@"); 
    Matcher matcher = pattern.matcher(userid); 
    boolean found = matcher.find(); 

     if(found){ 
     //do stuff 

所以我們的目標是檢查@符號的字符串。不確定我缺少什麼新的Java。感謝您的幫助

+5

任何理由不說:如果(userid.contains( 「@」)){...}? – mfrankli 2012-07-20 21:33:27

+0

當你說你想知道什麼是錯的時候,你只是問關於代碼的效率/好設計,還是你得到某種錯誤?因爲低效率是顯而易見的,但如果由於某種原因而不起作用,您就沒有明確表示。另外,你在哪裏聲明用戶ID? – CosmicComputer 2012-07-20 22:09:07

回答

3

你爲什麼不嘗試使用含有方法?

String userID = "@Test"; 
boolean found = userID.contains("@"); 

但是這也爲我工作:

String userID = "@Test"; 
Pattern pattern = Pattern.compile(".*@.*"); 
Matcher matcher = pattern.matcher(userID); 
boolean found = matcher.find(); 
+0

非常感謝大家。非常感激。我希望我可以給所有人支票。 – AhabLives 2012-07-20 23:45:55

1

試試這個:

if(userid.contains("@") { 
    //do stuff 
} 
1

要麼使用String#contains,或

  1. 變換字符串轉換成字符數組
  2. 遍歷每個字符,直到@字符被發現,如果根本就是

使用正則表達式來處理這樣一個簡單的任務是沒有必要的,而且過於複雜。

2

正則表達式是矯枉過正這裏,你可以完成同樣的事情與contains方法,

相關問題