2015-07-20 66 views
0

所以我試圖擺脫除了-.I之外的標點符號,我試圖從字符串中使用.match(),如果它是假的,刪除整個字符串。我試過除了 - 正則表達式找到標點符號

public static void removeWords(String [] array){ 
    int i; 
    boolean isWords; 

    for(i = 0; i < array.length;i++){ 
     isWords = checkWord(array[i]); 
     if (isWords == false) 
      array[i] = ""; 
    } 

} 

public static boolean checkWord(String word){ 
    if (word.matches("[a-zA-Z[\\-]]")){ 
     return true; 
    } 
    else 
     return false; 
} 

但它不會識別 - 。

編輯: 所以「he789llo」應該被刪除,但「他-LLO」不應該be.but這兩個詞都被該代碼刪除

+0

告訴我們您所使用的輸入,與預期結果一起,而你現在得到什麼結果。這會更容易看出你做錯了什麼。 – Gosu

+0

你不需要[ - ],但你可以用'\ -' –

+0

來逃避它請完整的代碼。 '[a-zA-Z [ - ]]'匹配1個字符,即'a-z'或'A-Z'或'-'。 Niote在Java中不使用方括號內的字符類。也許,你正在尋找'+'量詞來匹配一個或多個字符。 –

回答

3

你並不需要把-另一個字符類中你也需要把+*你的性格課後:

[a-zA-Z-]+ 
相關問題