回答
使用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