回答
使用Apache Commons Lang中:
!StringUtils.isAlphanumeric(String)
Alternativly遍歷字符串的字符,並檢查:
!Character.isLetterOrDigit(char)
你還有一個問題留給: 你舉的例子字符串 「abcdefà」 是字母數字,因爲à
是一封信。但我認爲你希望它被認爲是非字母數字的,對吧?!
所以,你可能需要使用正則表達式來代替:
String s = "abcdefà";
Pattern p = Pattern.compile("[^a-zA-Z0-9]");
boolean hasSpecialChar = p.matcher(s).find();
我想避免導入外部庫,如果不是絕對必要的。是的:我希望à被視爲非字母數字。 – lugeno
你必須要經過每一個字符字符串,並檢查Character.isDigit(char);
或Character.isletter(char);
或者,你可以使用正則表達式。
例如,「-1234」是一個數字,而不是字母數字字符串。但是你的邏輯Character.isDigit將返回false爲「 - 」。 :( – Abhishek
如果您可以使用Apache Commons庫,那麼Commons-Lang StringUtils
有一個名爲isAlphanumeric()
的方法,它可以完成您正在尋找的任務。
一種方法是使用String類本身做。 比方說,你的字符串是類似的東西:
String s = "some text";
boolean hasNonAlpha = s.matches("^.*[^a-zA-Z0-9 ].*$");
另外一個是使用一個外部庫,比如Apache Commons:中
String s = "some text";
boolean hasNonAlpha = !StringUtils.isAlphanumeric(s);
+1:正則表達式在這裏是我認爲的贏家,因爲OP並不真正想檢查字母數字字符,他想要像'hasSpecialCharacters(String)'和他自己定義的「special」 –
這不會起作用:Java中的String.matches(...)檢查正則表達式是否匹配*整個*字符串。 – ruakh
你說得對。我修改了正則表達式 – loscuropresagio
string.matches("^\\W*$");
應該做你想要什麼,但它不包括空格。 string.matches("^(?:\\W|\\s)*$");
也匹配空格。
您可以在Java.lang中使用isLetter(char c)Character類的靜態方法。
public boolean isAlpha(String s) {
char[] charArr = s.toCharArray();
for(char c : charArr) {
if(!Character.isLetter(c)) {
return false;
}
}
return true;
}
使用此功能來檢查一個字符串是否是字母:
public boolean isAlphanumeric(String str)
{
char[] charArray = str.toCharArray();
for(char c:charArray)
{
if (!Character.isLetterOrDigit(c))
return false;
}
return true;
}
它省去了導入外部庫和代碼可以很容易地修改你應該以後要執行對字符串不同的驗證檢查。
- 1. 檢查一個字符串是否包含數字和字母
- 2. 如何確定一個字符串是否包含另一個字符串
- 3. 確定一個字符串是否包含數字序列
- 4. 如何確定是否一個字符串包含重複字母
- 5. 確定是否一個字符串包含一個字
- 6. PHP檢查字符串是否包含一些字母/數字
- 7. 如何檢查一個字符是否包含特定字母
- 8. 如何確定一個字符串包含字符串
- 9. 確定一個字符串是否包含任何一組字符串
- 10. Lua:如何檢查一個字符串是否只包含數字和字母?
- 11. java - 如何測試一個字符串是否包含字母和數字
- 12. 函數來確定一個字符串是否只包含另一個字符
- 13. 確定一個字符串是否包含另一個字符串
- 14. 確定一個字符串是否包含一個子字符串
- 15. 確定一個字符串是否包含數組中的子字符串[NODEJS]
- 16. 如何確定字符串是否包含R中的非羅馬字符
- 17. 檢測字符串中是否包含非字母
- 18. 確定一個字符串是否包含特定位置的子字符串
- 19. 檢查字符串是否包含字母數字
- 20. 檢查一個字符串是否只包含某些字母
- 21. 如何檢查一個字符串是否至少包含一個數字,字母和非數字或字母的字符?
- 22. 檢查一個字符串是否包含給定字符
- 23. 檢查一個字符串是否包含特定字符
- 24. Java,如何檢查一個字符串是否包含數字?
- 25. 創建一個包含特定字符串的數組,以及如何將字符串分成字母字母
- 26. 如何定義包含非ASCII字符的字符串文字?
- 27. 確定一個字符串是否包含它內部的base64字符串
- 28. 確定字符串的索引是否包含字符
- 29. JQuery - 確認密碼包含非字母數字字符
- 30. 檢查字符串中是否包含非字母數字,除了下劃線
http://stackoverflow.com/questions/1795402/java-check-a-string-if-there-is-a-special-character-in-it –
http://stackoverflow.com/questions/11241690/regex-for-checking-if-a-string-is-strict-alphanumeric – treecoder