2013-05-08 2 views
0

자바에서 문자열을 분석하여 문자와 숫자가 모두 있는지 알아야합니다. 그래서 이것은 내가 지금까지 가지고있는 것입니다. 변수 패스는 사용자가 입력 한 최대 8 자/숫자의 문자열입니다.자바에서 문자열을 분석하여 글자와 숫자가 모두 있는지 확인하는 방법은 무엇입니까?

if(pass.matches("[^A-Za-z0-9]")) 

{ 

System.out.println("Valid"); 

} 

else 

{ 

    System.out.println("Invalid"); 

} 

답변

3

귀하의 질문은 약간 모호합니다.

pass.matches("^[a-zA-Z0-9]+$"); 

는 true를 돌려줍니다 :

그냥 문자열이 문자 또는 숫자 (그러나 아마 문자 나 번호)와 아무것도, 다음 정규식가 포함되어 있는지 여부를 알고 싶은 경우

. 당신이 모두 문자와 숫자, 그리고 아무것도 포함되어 있는지 여부를 확인하려면

은, 그것은 더 복잡하지만, 뭔가 같은 :

pass.matches("^[a-zA-Z0-9]*(([a-zA-Z][0-9])|([0-9][a-zA-Z]))[a-zA-Z0-9]*$"); 

모든 최고의

+0

이걸 사용하면 고마워요! –

1

나는 StringUtils.isAlphanumeric을 사용합니다. 코드는 다음과 같이 표시됩니다

if (StringUtils.isAlphanumeric(pass)) { 
    //valid 
} ... 

당신은 또한 최대 8 자 원하는 말한다. 당신은 이런 식으로 작업을 수행 할 수 있습니다

if (StringUtils.isAlphanumeric(pass) && StringUtils.length(pass) <= 8) { 
    //valid 
} ... 

길이 다시 StringUtils에 사용의 장점은 pass가 null의 경우는 NullPointerException을 얻을 것입니다. 또는 pass.length()을 사용할 수도 있지만 NullPointerException이 발생할 위험이 있습니다.

+1

감사 또는 도움 rolfl는 나를 위해 그것을 얻었다, 입력을위한 톤 감사! –

관련 문제