자바는 문자열 숫자, 문자와 중국어가 포함되어 있는지 여부를 판단

     일반 영어, 순수한 숫자의 조합, 숫자, 자바의 문자열은 일반적으로 일반 str.matches 일치를 사용 여부를 결정할 때, 일반 주어진 문자열과 정규 표현식 일치 여부를 알려줍니다.  
  1. 유니 코드 문자 인코딩 다양한 범위 :
  2. 문자 [0x4e00,0x9fa5 (또는 10 진수 [19968,40869])
  3. 도 [0x30,0x39 (소수점 또는 [48, 57])
  4. 소문자가 [0x61,0x7a (또는 10 진수 [97, 122])
  5. 대문자 : 0x41,0x5a (소수점 또는 [65, 90])
가져 오기 java.util.regex.Matcher;
 가져 오기 있으며, java.util.regex.Pattern는, 

공공  클래스 StrValidate { 

    // 순수 디지털 
    개인  정적 문자열 DIGIT_REGEX는 = "[0-9] +" ;
     //는 디지털 포함 
    개인  정적 "문자열 = CONTAIN_DIGIT_REGEX을 . * [0-9] *. " ;
     // 순수 글자 
    개인  정적 문자열 LETTER_REGEX ="[A-ZA-는 Z] + " ;
     //이 문자가 포함 
    개인  정적 문자열 CONTAIN_LETTER_REGEX =을."* [A-ZA-Z] . * " ;
     // 순수 중국어 
    개인  정적CHINESE_REGEX = 문자열 "[\ u4e00- \ u9fa5]" ;
     // 영숫자 
    개인  정적 스트링 LETTER_DIGIT_REGEX = "^ [은 Z-A-z0-9A] + $" ;
     개인  정적 스트링 CHINESE_LETTER_REGEX = "([\ u4e00 - \ u9fa5] + | [A-ZA-는 Z] +) " ;
     개인  정적 스트링 CHINESE_LETTER_DIGIT_REGEX ="^ [은 Z-A-z0-9A \ u4e00- \ u9fa5] + $ " ; 

    / ** 
     *이 결정되었는지의 여부를 문자열 숫자와 문자를 포함 
     * 
     * 파라미터 : STR 
     * @return 
     * / 
    공공  정적  부울 isLetterDigit (문자열 STR) {
         반환  str.matches (LETTER_DIGIT_REGEX);
    } 
    / **
     구두점을 포함하지 * 여부를 문자, 
     * 
     * 파라미터 : CON 
     * @return 한자 true로
      * / 
    공공  정적  부울 isChinese (문자열 CON) { 
        패턴 패턴 = 는 Pattern.compile의 (CHINESE_REGEX)
         에 대한 ( INT I = 0; 나는 < con.length ();. 내가 +를 = 1 ) {
             IF (! Pattern.matcher는 ( 
                    . 찾기 ()) {한 String.valueOf (con.charAt은 (내가))) 
                반환  거짓 ; 
            } 
        } 
        반환  true로를 ; 
    } 
    / **
     * 정규 표현식은 문자열의 여부를 판단 
     문자, 숫자 및 문자를 포함 할 것이다 
     * 
     * @param STR 
     * @return 
     * / 
    공공  정적  부울 isLetterDigitOrChinese (문자열 STR) {
         반환 str.matches (CHINESE_LETTER_DIGIT_REGEX); 
    } 
    / ** 
     이름 * 문자와 문자를 포함 할 수 있습니다, 다른 캐릭터 
     * 
     * @param passengerName 
     * @return 
     * / 
    공공  정적  부울 checkChineseLetter (문자열 passengerName) { 
        패턴 패턴 =  는 Pattern.compile의 (CHINESE_LETTER_REGEX) 없다
        Matcher를 Matcher를 = Pattern.matcher (passengerName),
         IF (matcher.matches는 ()) {
             // 특수 문자가 포함되지 않은 
            반환  ; 
        } 그렇지 않으면 {
             //이 특수 문자가 포함되어 
            돌아  거짓 ; 
        } 
    } 
    / ** 
     *은 문자열 여부를 결정 문장 부호 (중국어 또는 영어 구두점), 진정한 포함되어 있습니다. 
     * 원칙 : 원래의 문자열은 세척을, 모든 문장 부호를 청소하십시오. 
     기준 구두점을 포함 할 경우 RET *이 경우에, 다른 길이의 문자열 전과 세척 후 true를 반환하고, 그렇지 않으면,이 거짓을 반환 길이가 동일. 
     * 
     * @param의 RET 
     * @return 진정한 포함하는 영어 문장에
      * / 
    공공  정적  부울checkPunctuation (문자열 RET) {
         부울 B = false로 , 
        문자열 TMP = RET;
 //         일반 일치 안에 완전히 대체하기는 숫자, 영어와 중국어를 떠나, 영어 문장에서 문자열을 비울 수 있습니다. 
        tmp.replaceAll = TMP ( "\\ P {P}", "" );
         IF (! ret.length () = tmp.length ()) { 
            B = true로 ; 
        } 
        반환 B; 
    } 
    공공  정적  부울 isdigit에 (문자열 RET) {
         반환 ret.matches (DIGIT_REGEX); 
    } 
    공공  정적  부울대해서 isLetterOrDigit (문자열 RET) {
         반환 ret.matches (LETTER_REGEX); 
    } 
    공공  정적  부울 hasDigit (문자열 RET) {
         반환 ret.matches (CONTAIN_DIGIT_REGEX); 
    } 
    공공  정적  부울 hasLetter (문자열 RET) {
         반환 ret.matches (CONTAIN_LETTER_REGEX); 
    } 
    공공  정적  무효 메인 (문자열 []에 args) {
 //         에서 System.out.println (isLetterDigitOrChinese ( "33dd33") + "-------麦迪娜·买买提--------- ");
//         에서 System.out.println (isChinese ( "麦迪娜·买买提"));
//         에서 System.out.println (isChinese ( "这个X") + "checkChineseLetter");
         에서 System.out.println (isChinese ( "checkChineseLetter"));
//         에서 System.out.println (isChinese ( "checkChineseLetter3")); 

        에서 System.out.println (hasDigit ( "99999" )); 
        에서 System.out.println (hasDigit ( "9999舅舅9" )); 
    } 
}
 
     참고
 
 
 
 
 

추천

출처www.cnblogs.com/east7/p/12215829.html