왜 이것이 실패합니까?문자열에 숫자가 포함되지 않았는지 확인하기 위해 정규식 검사
String n = "h107";
if (n.matches("\\D+")) {
System.out.println("non digit in it");
}
나는 그 위에 잠을 자고 아직도 얻지 못했다. 는 지금 해결책을 가지고 :
if (n.matches(".*\\D+.*")) {
하지만 내 (지식 어쩌면 부족)에
첫 번째는 일치해야합니다. 왜냐하면 완전한 String과 일치해야한다면, 줄 시작을 나타내는 '^'문자의 점은 무엇일까?
그것은 그 또 다른 하나의 지체 자바 API ... –
@dystroy 경우"지체 "의 지정하여 답변을하지 어렵다 같이 : 전체 문자열이 숫자로 구성되어 있다면 간단히 true를 돌려
\d+
에 정규 표현식을 변경 misnamed "그렇다면 완전히 동의합니다;) 그렇지 않으면 올바르게 사용하면 꽤 좋습니다 – fge@fge 잘못된 이름이고 약한 디자인 선택입니다. 표준 정규식 규칙을 사용하면 간단한 검사를 위해 자세한 패턴 API를 사용하지 않고 전체 문자열을 일치 시킬지 여부를 결정할 수있었습니다. –