2013-12-13 193 views

回答

0

您可以使用String.indexOf(int)來檢查特定字符是否在您的字符串中(如果不在中,它將返回-1)。

您可以使用String.toCharArray()來獲取您不想要的所有字符的數組,併爲每個字符迭代此數組。

可讀和簡單的代碼(雖然不是最有效的)將是:

private static boolean charsOK(String s) { 
    String charactersIdontWant = "^àáâãäåçèéêëìíîïðòóôõöùúûüýÿ!&{}¿?.<>~\\()"; 
    for (char c : charactersIdontWant.toCharArray()) { 
     if (s.indexOf(c) != -1) return false; 
    } 
    return true; 

} 
public static void main(String[] args) { 
    String myString = "thisMayContïain/[email protected]"; 
    String myString2 = "thisMayContain/[email protected]"; 
    System.out.println(charsOK(myString)); 
    System.out.println(charsOK(myString2)); 
} 
+0

是的,也許這不是最有效的方法,但它適用於我想要的。我嘗試了pvgoran的模式,但由於某些原因不工作,也許是因爲我自己的無知,也可能是出於同樣的原因,我無法將StringUtils庫導入到我的android項目中。謝謝。 –

4

您可以從Apache的StringUtils的使用containsAny():

boolean haveBadCharacters = StringUtils.containsAny(myString, charactersIdontWant); 

如果你上的圖案堅持,你可以使用方法:

Pattern badCharactersPattern = Pattern.compile("[àáâãäåçèéêëìíîïðòóôõöùúûüýÿ!&{}¿?.<>~\()^]"); 

(注意:^移動到終點,使其不被解釋爲羣組否定指示符)。

相關問題