문자열에 영숫자가 아닌 문자가 있는지 알려줄 수있는 메서드가 필요합니다.문자열에 영숫자가 아닌 문자가 있는지 확인하는 방법은 무엇입니까?
예를 들어 문자열이 "abcdef?"인 경우 또는 "abcdefà"이면 메서드는 true를 반환해야합니다.
문자열에 영숫자가 아닌 문자가 있는지 알려줄 수있는 메서드가 필요합니다.문자열에 영숫자가 아닌 문자가 있는지 확인하는 방법은 무엇입니까?
예를 들어 문자열이 "abcdef?"인 경우 또는 "abcdefà"이면 메서드는 true를 반환해야합니다.
귀하의 예를 들어 문자열을 숫자이다 "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()
이라는 메서드가 있습니다.
!StringUtils.isAlphanumeric(String)
Alternativly이 문자열의 문자를 반복하고 확인 :
!Character.isLetterOrDigit(char)
당신은 아직 한 가지 문제가 남아했습니다 아파치 코 몬즈 랭를 사용
한 가지 방법은 String 클래스 자체를 사용하여 그렇게하는 것입니다.
이String s = "some text";
boolean hasNonAlpha = s.matches("^.*[^a-zA-Z0-9 ].*$");
다른 하나의 아파치 평민 같은 외부 라이브러리를 사용하는 것입니다 : : 의 당신의 캐릭터가 같은 것입니다 가정 해 봅시다
String s = "some text";
boolean hasNonAlpha = !StringUtils.isAlphanumeric(s);
+1 : OP가 실제로 확인하고 싶지 않기 때문에 정규 표현식이 여기에 있습니다. 특수 문자 "hasSpecialCharacters (String)"와 같이 sth을 원합니다 –
Java에서 String.matches (...)는 정규 표현식이 * 전체 문자열. – ruakh
당신이 옳습니다. 나는 정규 표현식을 수정했다. – loscuropresagio
string.matches("^\\W*$");
당신이 원하는 일을해야한다, 그러나 그렇지 않습니다 공백을 포함하십시오. string.matches("^(?:\\W|\\s)*$");
도 공백과 일치합니다.
Java.lang에서 Character 클래스의 정적 메서드 isLetter (char c)를 사용할 수 있습니다. 문자열이 숫자 인 경우
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;
}
그것은 외부 라이브러리를 가져올 필요가 저장하고 코드가 쉽게 나중에 문자열에 다른 유효성 검사를 수행하고자한다 수정할 수 있습니다 .
http://stackoverflow.com/questions/1795402/java-check-a-string-if-there-is-a-special-character-in-it –
http://stackoverflow.com/questions/11241690/regex-for-a-string-is-strict-alphanumeric – treecoder