jinpengyong
2021-02-20 1bc01b6d0c904c80dc002285654ebb542f044474
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
package com.moral.util;
 
import java.util.regex.Pattern;
 
public class StringUtils {
    public static boolean isEmpty(Object str) {
        return str == null || "".equals(str);
    }
    /**
     *  字符长度控制,中文算1个字符
     * @param str
     * @param maxLength
     * @return
     */
    public static String subString(final String str, final int maxLength) {
        if (isEmpty(str)) {
            return "";
        }
        int len = str.length();
        if(len<maxLength){
            return str;
        }
        return str.substring(0,maxLength-4)+"...";
    }
    /**
     *  中英文字符长度控制,中文算2个字符
     * @param str
     * @param maxLength
     * @return
     */
    public static String subStringCN(final String str, final int maxLength) {
        if (str == null) {
            return "";
        }
        String suffix = "...";
        int suffixLen = suffix.length();
 
        final StringBuffer sbuffer = new StringBuffer();
        final char[] chr = str.trim().toCharArray();
        int len = 0;
        for (int i = 0; i < chr.length; i++) {
 
            if (chr[i] >= 0xa1) {
                len += 2;
            } else {
                len++;
            }
        }
 
        if(len<=maxLength){
            return str;
        }
 
        len = 0;
        for (int i = 0; i < chr.length; i++) {
 
            if (chr[i] >= 0xa1) {
                len += 2;
                if (len + suffixLen > maxLength) {
                    break;
                }else {
                    sbuffer.append(chr[i]);
                }
            } else {
                len++;
                if (len + suffixLen > maxLength) {
                    break;
                }else {
                    sbuffer.append(chr[i]);
                }
            }
        }
        sbuffer.append(suffix);
        return sbuffer.toString();
    }
    
    public static boolean isNumber(String str) {
        String regex = "[-\\+]?\\d*+.?\\d*";
        return  Pattern.matches(regex, str);
    }
 
}