zsh_root
2025-01-06 7857a444de69124e9f7fb45f98b0ae818b107f23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package tools.Judge;
 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
 
public class JugeNumber {
 
    // 纯数字
    private static String DIGIT_REGEX = "^-?\\d+$";
    
    // 含有数字
    private static String CONTAIN_DIGIT_REGEX = ".*[0-9].*";
    
    // 纯字母
    private static String LETTER_REGEX = "[a-zA-Z]+";
    
    // 包含字母
    private static String CONTAIN_LETTER_REGEX = ".*[a-zA-z].*";
    
    // 纯中文
    private static String CHINESE_REGEX = "[\u4e00-\u9fa5]";
    
    // 仅仅包含字母和数字
    private static String LETTER_DIGIT_REGEX = "^[a-z0-9A-Z]+$";
    
    private static String CHINESE_LETTER_REGEX = "([\u4e00-\u9fa5]+|[a-zA-Z]+)";
    
    private static String CHINESE_LETTER_DIGIT_REGEX = "^[a-z0-9A-Z\u4e00-\u9fa5]+$";
    
 
 
 
 
    /*方法二:推荐,速度最快
     * 判断是否为整数 
     * @param str 传入的字符串 
     * @return 是整数返回true,否则返回false 
     */
    public static boolean isInteger(String str) {  
        Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");  
        return pattern.matcher(str).matches();  
    }
 
    /** 判断字符串是否仅含有数字和字母*/
    public static boolean isLetterDigit(String str) {
        return str.matches(LETTER_DIGIT_REGEX);
    }
    
    
    /**
     * 是否为汉字,不包括标点符号
     *
     * @param con
     * @return true 是汉字
     */
    public static boolean isChinese(String con) {
        Pattern pattern = Pattern.compile(CHINESE_REGEX);
        for (int i = 0; i < con.length(); i = i + 1) {
            if (!pattern.matcher(
                    String.valueOf(con.charAt(i))).find()) {
                return false;
            }
        }
        return true;
    }
    
    
    /**
     * 用正则表达式判断字符串中是否 仅包含英文字母、数字和汉字
     *
     * @param str
     * @return
     */
    public static boolean isLetterDigitOrChinese(String str) {
        return str.matches(CHINESE_LETTER_DIGIT_REGEX);
    }
    
    
    /**
     * 姓名中可包含汉字和字母,无其它字符
     *
     * @param passengerName
     * @return
     */
    public static boolean checkChineseLetter(String passengerName) {
        Pattern pattern = Pattern.compile(CHINESE_LETTER_REGEX);
        Matcher matcher = pattern.matcher(passengerName);
        if (matcher.matches()) {
            //不包含特殊字符
            return true;
        } else {
            //包含了特殊字符
            return false;
        }
    }
    /**
     * 判断一个字符串是否包含标点符号(中文或者英文标点符号),true 包含。<br/>
     * 原理:对原字符串做一次清洗,清洗掉所有标点符号。<br/>
     * 此时,如果入参 ret 包含标点符号,那么清洗前后字符串长度不同,返回true;否则,长度相等,返回false。<br/>
     *
     * @param ret
     * @return true 包含中英文标点符号
     */
    public static boolean checkPunctuation(String ret) {
        boolean b = false;
        String tmp = ret;
        //        replaceAll里面的正则匹配可以清空字符串中的中英文标点符号,只保留数字、英文和中文。
        tmp = tmp.replaceAll("\\p{P}", "");
        if (ret.length() != tmp.length()) {
            b = true;
        }
        return b;
    }
    
    /**判断字符串是否为纯数字*/
    public static boolean isDigit(String ret) {
        return ret.matches(DIGIT_REGEX);
    }
    
    public static boolean isLetter(String ret) {
        
        return ret.matches(LETTER_REGEX);
    }
    
    public static boolean hasDigit(String ret) {
        return ret.matches(CONTAIN_DIGIT_REGEX);
    }
    
    /**判断是否包含字母*/
    public static boolean hasLetter(String ret) {
        return ret.matches(CONTAIN_LETTER_REGEX);
    }
 
 
}