zoukankan      html  css  js  c++  java
  • StringHelper--封转自己的字符串工具类

    我们每次开发项目,都会有很多的关于字符串的处理,字符串的处理太常见了,无法避免,那么这时如果可以把常用的字符串处理封装成类,在以后的开发中应该会减少一些工作量,下面代码对一些常用的字符串处理进行了封装,如果遇上了其他的关于字符串处理可以不断加入进来。

    现在已经实现的功能有:

    1,判断一个字符串是否为 null 或 空串 或 空白,

    2,判断一个字符串是否不是null且不是空串、不是空白,

    3,判断一个字符串变量是否为 null,

    4,判断一个字符串是否为 空串,

    5,比较两个非空(不是null,不是空串、不是空白)字符串是否"相等",

    6,比较两个字符串是否 "相等",

    7,随机生成一个 32 位长度的 字符串( UUID ),

    8,通过 SHA1 对字符串进行加密,

    9,对 给定字符串 进行 md5 加密,(对密码进行加密使用)

    10,检测邮箱合法性,

    11,Double进行四舍五入,得到指定位数的小数,

    12,根据Unicode编码完美的判断中文汉字和符号,

    13,判断是否包含中文汉字,

    14判断是否只有中文汉字,

    15判断邮政编码.

    代码有详细备注,不做说明。如下:

      1 public final class StringHelper {  
      2       
      3     /** 
      4      * 判断一个字符串是否为 null 或 空串 或 空白 
      5      * @param source 需要判断的字符串 
      6      * @return 当字符串为 null 或 为 空白、空串 时返回 true 
      7      */  
      8     public static boolean empty( String source ) {  
      9         return source == null || source.trim().isEmpty()  ;  
     10     }  
     11       
     12     /** 
     13      * 判断一个字符串是否不是null且不是空串、不是空白 
     14      * @param source 需要判断的字符串 
     15      * @return 当 字符串是不是null且不是空串也不是空白时返回 true 
     16      */  
     17     public static boolean notEmpty( String source ) {  
     18         return source != null && source.trim().length() > 0 ;  
     19     }  
     20       
     21     /** 
     22      * 判断一个字符串变量是否为 null 
     23      * @param source 需要判断的字符串 
     24      * @return 当 字符串变量 为 null 时返回 true 
     25      */  
     26     public static boolean isNull( String source ) {  
     27         return source == null ;  
     28     }  
     29       
     30     /** 
     31      * 判断一个字符串是否为 空串 
     32      * @param source 需要判断的字符串 
     33      * @return 当字符串中的值是 空串 或 空白 串时返回 true 
     34      */  
     35     public static boolean emptyString( String source ) {  
     36         return ( source != null ) && source.length() == source.trim().length() ;  
     37     }  
     38       
     39     /** 
     40      * 判断一个字符串是否为 空白 串 
     41      * @param source 需要判断的字符串 
     42      * @return 当字符串中的值是 空白 串时返回 true 
     43      */  
     44     public static boolean blank( String source ){  
     45         return ( source != null ) && source.length() > source.trim().length()  ;  
     46     }  
     47       
     48     /** 
     49      * 比较两个非空(不是null,不是空串、不是空白)字符串是否"相等" 
     50      * @param one 第一个需要比较的字符串 
     51      * @param theOther 另一个参与比较的字符串 
     52      * @return 当 两个字符串 都不为空串 且 内容完全一致 (剔除首尾空白后、大小写也一致)时返回 true 
     53      */  
     54     public static boolean equals( String one , String theOther) {  
     55         return equals(one, theOther,true,false);  
     56     }  
     57       
     58     /** 
     59      * 比较两个字符串是否 "相等" 
     60      * @param one 参与比较的第一个字符串 
     61      * @param theOther 参与比较的另一个字符串 
     62      * @param escapeSpace 是否需要剔除首尾空白 ( true 表示需要剔除首尾空白,false 表示不剔除 ) 
     63      * @param ignoreCase 是否忽略大小写 ( true 表示忽略大小写 ,false 表示不忽略大小写 ) 
     64      * @return 
     65      */  
     66     public static boolean equals( String one , String theOther , boolean escapeSpace , boolean ignoreCase) {  
     67           
     68         if( one == null || theOther == null ){  
     69             return false ;  
     70         }  
     71           
     72         if( escapeSpace ){  
     73             one = one.trim();  
     74             theOther = theOther.trim();  
     75         }  
     76           
     77         return ignoreCase ? one.equalsIgnoreCase( theOther ) : one.equals( theOther ) ;  
     78     }  
     79       
     80     /** 
     81      * 随机生成一个 32 位长度的 字符串( UUID ) 
     82      * @return 
     83      */  
     84     public static String random(){  
     85         UUID uuid = UUID.randomUUID();//36位长度(包含了 四个 - )  
     86         String uuidString = uuid.toString();  
     87         uuidString = uuidString.replace("-", "");  
     88         uuidString = uuidString.toUpperCase();  
     89         return uuidString;  
     90     }  
     91       
     92     /** 
     93      * 通过 SHA1 对字符串进行加密 
     94      * @param source 
     95      * @return 
     96      */  
     97     public static String sha1(String source ){  
     98         try{  
     99             MessageDigest md = MessageDigest.getInstance("SHA1");  
    100             BASE64Encoder encoder = new BASE64Encoder();  
    101             return encoder.encode( md.digest( source.getBytes() ) );  
    102         }catch(NoSuchAlgorithmException e){  
    103             e.printStackTrace();  
    104             return null;  
    105         }  
    106     }  
    107       
    108     /** 
    109      * 对 给定字符串 进行 md5 加密 
    110      * @param source 待加密的字符串 
    111      * @return 
    112      */  
    113     protected static String md524(String source ){  
    114         try{  
    115             MessageDigest md = MessageDigest.getInstance("MD5");  
    116             BASE64Encoder encoder = new BASE64Encoder();  
    117             return encoder.encode( md.digest(source.getBytes()) );  
    118         }catch(NoSuchAlgorithmException e){  
    119             e.printStackTrace();  
    120             return null;  
    121         }  
    122     }  
    123       
    124     /** 
    125      * 对字符串进行MD5加密 
    126      * @param source 需要加密的字符串 
    127      * @return 返回加密后的字符串 
    128      */  
    129     public static final String MD5(String source){  
    130         if(source != null){  
    131             StringBuffer md5 = new StringBuffer();  
    132             MessageDigest md = null;  
    133             try{  
    134                 md = MessageDigest.getInstance("MD5");  
    135                 md.update(source.getBytes());  
    136                 byte[] mdBytes = md.digest();  
    137                   
    138                 for(int i = 0;i < mdBytes.length;i++){  
    139                     int temp;  
    140                     if(mdBytes[i] < 0){  
    141                         temp = 256+mdBytes[i];  
    142                     }else{  
    143                         temp = mdBytes[i];  
    144                     }  
    145                     if(temp < 16){  
    146                         md5.append("0");  
    147                     }  
    148                     md5.append(Integer.toString(temp,16 ));  
    149                 }  
    150             }catch(NoSuchAlgorithmException e){  
    151                 e.printStackTrace();  
    152             }  
    153             return md5.toString().toUpperCase();  
    154         }  
    155         return null;  
    156     }  
    157     /** 
    158      * 检测邮箱合法性 
    159      *  
    160      * @param email 
    161      * @return 
    162      */  
    163     public static boolean isEmail(String email) {  
    164         if ((email == null) || (email.trim().length() == 0)) {  
    165             return false;  
    166         }  
    167         String regEx = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$";  
    168         Pattern p = Pattern.compile(regEx);  
    169         Matcher m = p.matcher(email.trim().toLowerCase());  
    170    
    171         return m.find();  
    172     }  
    173   
    174    
    175     /** 
    176      * Double进行四舍五入 
    177      *  
    178      * @param v 
    179      * @param scale 
    180      * @return 
    181      */  
    182     public static double getDouble(Double v, int scale) {  
    183    
    184         if (scale < 0) {  
    185             scale = 0;  
    186         }  
    187         BigDecimal b = new BigDecimal(v);  
    188         BigDecimal one = new BigDecimal("1");  
    189         return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();  
    190     }  
    191    
    192     /** 
    193      * 得到指定位数的小数 
    194      * @param v 
    195      * @param scale 
    196      * @return 
    197      */  
    198     public static String getDecimals(Double v, int scale) {  
    199    
    200         return String.format("%." + String.valueOf(scale) + "f", v);  
    201    
    202     }  
    203     /** 
    204      * 根据Unicode编码完美的判断中文汉字和符号 
    205      *  
    206      * @param c 
    207      * @return 
    208      */  
    209     private static boolean isChinese(char c) {  
    210         Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);  
    211         if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS  
    212                 || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS  
    213                 || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A  
    214                 || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B  
    215                 || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION  
    216                 || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS  
    217                 || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {  
    218             return true;  
    219         }  
    220         return false;  
    221     }  
    222    
    223     /** 
    224      * 判断是否包含中文汉字 
    225      *  
    226      * @param strName 
    227      * @return 
    228      */  
    229     public static boolean isChineseHave(String strName) {  
    230         char[] ch = strName.toCharArray();  
    231         for (int i = 0; i < ch.length; i++) {  
    232             char c = ch[i];  
    233             if (isChinese(c)) {  
    234                 return true;  
    235             }  
    236         }  
    237         return false;  
    238     }  
    239    
    240     /** 
    241      * 判断是否只有中文汉字 
    242      *  
    243      * @param strName 
    244      * @return 
    245      */  
    246     public static boolean isChineseAll(String strName) {  
    247         char[] ch = strName.toCharArray();  
    248         for (int i = 0; i < ch.length; i++) {  
    249             char c = ch[i];  
    250             if (!isChinese(c)) {  
    251                 return false;  
    252             }  
    253         }  
    254         return true;  
    255     }  
    256    
    257     /** 
    258      * 判断邮政编码 
    259      *  
    260      * @param str 
    261      * @return 
    262      */  
    263     public static boolean isCard(String str) {  
    264         Pattern p = Pattern.compile("[1-9]\d{5}(?!\d)");  
    265         Matcher m = p.matcher(str);  
    266         return m.matches();  
    267     }  
    268    
    269 }  
  • 相关阅读:
    fd_set 用法
    初步认识迭代服务器和并发服务器
    慢系统调用与信号中断
    nigix以及相关
    IO多路复用的几种实现机制的分析
    伪终端
    linux非阻塞的socket EAGAIN的错误处理
    从输入 URL 到页面加载完成的过程中都发生了什么事情?
    7.9 函数的定义
    7.8 文件操作
  • 原文地址:https://www.cnblogs.com/lindaguo/p/6764943.html
Copyright © 2011-2022 走看看