开发中日常操作转化工具类

Java代码 
  1. package com.util;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.IOException;  
  6. import java.io.InputStream;  
  7. import java.io.OutputStream;  
  8. import java.io.Writer;  
  9. import java.lang.reflect.Method;  
  10. import java.net.InetAddress;  
  11. import java.net.NetworkInterface;  
  12. import java.text.ParseException;  
  13. import java.text.SimpleDateFormat;  
  14. import java.util.ArrayList;  
  15. import java.util.Calendar;  
  16. import java.util.Date;  
  17. import java.util.Enumeration;  
  18. import java.util.HashMap;  
  19. import java.util.List;  
  20. import java.util.Locale;  
  21. import java.util.Map;  
  22. import java.util.regex.Matcher;  
  23. import java.util.regex.Pattern;  
  24.   
  25. import javax.servlet.http.HttpServletResponse;  
  26. import org.apache.commons.logging.Log;  
  27. import org.apache.commons.logging.LogFactory;  
  28.   
  29. public  class Util  
  30. {  
  31.     /** 
  32.      * ERRORTYPE 
  33.      */  
  34.     public static final String ERRORTYPE = "TYPE";  
  35.       
  36.     /** 
  37.      * ERRORTYPE_ERROR 
  38.      */  
  39.     public static final String ERRORTYPE_ERROR = "ERROR";  
  40.       
  41.     /** 
  42.      * ERRORCODE 
  43.      */  
  44.     public static final String ERRORCODE = "ERRORCODE";  
  45.       
  46.     /** 
  47.      * ERRORINFO 
  48.      */  
  49.     public static final String ERRORINFO = "ERRORINFO";  
  50.       
  51.     /** 
  52.      * GOPAGE 
  53.      */  
  54.     public static final String GOPAGE = "GOPAGE";  
  55.       
  56.     /** 
  57.      * 有效小数 
  58.      */  
  59.     public static final int EFFECTIVE = 2;  
  60.       
  61.     protected static final Log LOG = LogFactory.getLog(Util.class);  
  62.       
  63.     /** 
  64.      * 移除重复 
  65.      *  
  66.      * @param arr 
  67.      *            要处理的字符串数 
  68.      * @return 处理后的字符串数 
  69.      */  
  70.     public static String[] removeRepeat(String[] arr)  
  71.     {  
  72.         if (arr == null)  
  73.         {  
  74.             return new String[0];  
  75.         }  
  76.         else  
  77.         {  
  78.               
  79.             Map<String, String> map = new HashMap<String, String>();  
  80.             for (String str : arr)  
  81.             {  
  82.                 String strt = map.get(str);  
  83.                 if (strt == null)  
  84.                 {  
  85.                     map.put(str, str);  
  86.                 }  
  87.             }  
  88.               
  89.             List<String> list = new ArrayList<String>();  
  90.             for (Map.Entry<String, String> entry : map.entrySet())  
  91.             {  
  92.                 list.add(entry.getKey());  
  93.             }  
  94.               
  95.             String[] strArr = new String[list.size()];  
  96.               
  97.             return list.toArray(strArr);  
  98.         }  
  99.     }  
  100.       
  101.     /** 
  102.      * 移除重复 
  103.      *  
  104.      */  
  105.     public static String removeRepeat(String str)  
  106.     {  
  107.         if (str == null)  
  108.         {  
  109.             return "";  
  110.         }  
  111.         else  
  112.         {  
  113.             str = str.replaceAll("^,+""");  
  114.             str = str.replaceAll(",+$""");  
  115.             str = str.replaceAll(",+"",");  
  116.             StringBuffer buf = new StringBuffer();  
  117.             for (String strt : removeRepeat(str.split(",")))  
  118.             {  
  119.                 buf.append(strt).append(',');  
  120.             }  
  121.               
  122.             str = removeEnd(buf.toString());  
  123.             return str;  
  124.         }  
  125.     }  
  126.       
  127.     /** 
  128.      * 移除开头的逗号 
  129.      *  
  130.      */  
  131.     public static String removeBegin(String str)  
  132.     {  
  133.         if (str == null)  
  134.         {  
  135.             return "";  
  136.         }  
  137.         else  
  138.         {  
  139.             Matcher matcher = Pattern.compile("^,+").matcher(str);  
  140.             str = matcher.replaceAll("");  
  141.             return str;  
  142.         }  
  143.     }  
  144.       
  145.     /** 
  146.      * 移除结尾的逗号 
  147.      *  
  148.      */  
  149.     public static String removeEnd(String str)  
  150.     {  
  151.         if (str == null)  
  152.         {  
  153.             return "";  
  154.         }  
  155.         else  
  156.         {  
  157.             Matcher matcher = Pattern.compile(",+$").matcher(str);  
  158.             str = matcher.replaceAll("");  
  159.             return str;  
  160.         }  
  161.     }  
  162.       
  163.     /** 
  164.      * 格式化日期 
  165.      * @param date 日期 
  166.      * @param pattern 格式 
  167.      * @return String String 
  168.      */  
  169.     public static String formatDate(Date date, String pattern)  
  170.     {  
  171.         SimpleDateFormat format = new SimpleDateFormat(pattern);  
  172.           
  173.         return format.format(date);  
  174.     }  
  175.       
  176.     /** 
  177.      * 〈计算两个日期相差的天数〉 
  178.      * 〈功能详细描述〉 
  179.      * @param begin 开始日期 
  180.      * @param end 结束日期 
  181.      * @return long 
  182.      */  
  183.     public static long calDays(Date begin, Date end)  
  184.     {  
  185.         long time = end.getTime() - begin.getTime();  
  186.         long days = time / 24 / 60 / 60 / 1000;  
  187.         return days;  
  188.     }  
  189.       
  190.     /** 
  191.      * 获取未来第几天的时间yyyy-MM-dd 
  192.      * @param dayNum 
  193.      * @return  
  194.      */  
  195.     public static String getNextDay(int dayNum){  
  196.         Calendar cal = Calendar.getInstance();   
  197.         Date date = new Date();   
  198.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");   
  199.         String returnDate  ="";  
  200.         try   
  201.         {   
  202.             cal.setTime(date);   
  203.             cal.add(Calendar.DATE, dayNum);   
  204.             returnDate = sdf.format(cal.getTime());  
  205.         }   
  206.         catch (Exception e)   
  207.         {   
  208.             e.printStackTrace();   
  209.         }  
  210.     return returnDate;  
  211.     }  
  212.       
  213.     /** 
  214.      * 格式化日期 
  215.      * @param str 日期字符串 
  216.      * @param pattern 格式 
  217.      * @return Date Date 
  218.      */  
  219.     public static Date formatDate(String str, String pattern)  
  220.     {  
  221.         Date date = null;  
  222.           
  223.         try  
  224.         {  
  225.             SimpleDateFormat format = new SimpleDateFormat(pattern);  
  226.               
  227.             date = format.parse(str);  
  228.         }  
  229.         catch (ParseException e)  
  230.         {  
  231.             date = new Date();  
  232.         }  
  233.           
  234.         return date;  
  235.     }  
  236.       
  237.     /** 
  238.      * 解析字符 
  239.      *  
  240.      * @param key 
  241.      *            key 
  242.      * @param str 
  243.      *            str 
  244.      * @return value 
  245.      */  
  246.     public static String getValue(String key, String str)  
  247.     {  
  248.         if (key == null || str == null)  
  249.         {  
  250.             return "";  
  251.         }  
  252.         String[] strArr = str.split(",");  
  253.           
  254.         for (String tempStr : strArr)  
  255.         {  
  256.             if (key.equals(tempStr.split(":")[0]))  
  257.             {  
  258.                 return tempStr.split(":")[1];  
  259.             }  
  260.         }  
  261.           
  262.         return "";  
  263.     }  
  264.       
  265.     /** 
  266.      * 解析字符 
  267.      *  
  268.      * @param key 
  269.      *            key 
  270.      * @param str 
  271.      *            str 
  272.      * @return value 
  273.      */  
  274.     public static int getIntValue(String key, String str)  
  275.     {  
  276.         int result = 0;  
  277.         if (str == null)  
  278.         {  
  279.             return result;  
  280.         }  
  281.         String[] strArr = str.split(",");  
  282.           
  283.         String value = "0";  
  284.         for (String tempStr : strArr)  
  285.         {  
  286.             if (key.equals(tempStr.split(":")[0]))  
  287.             {  
  288.                 value = tempStr.split(":")[1];  
  289.             }  
  290.         }  
  291.         try  
  292.         {  
  293.             result = Integer.parseInt(value);  
  294.         }  
  295.         catch (Exception e)  
  296.         {  
  297.             result = 0;  
  298.         }  
  299.           
  300.         return result;  
  301.     }  
  302.       
  303.     /** 
  304.      * 解析字符 
  305.      */  
  306.     public static String[] getValue(String str)  
  307.     {  
  308.         if (str == null)  
  309.         {  
  310.             return new String[0];  
  311.         }  
  312.         return str.split(",");  
  313.     }  
  314.       
  315.     /** 
  316.      * 直接向用户返回指定信息 
  317.      *  
  318.      * @param response 
  319.      *            response 
  320.      * @param msg 
  321.      *            void 
  322.      */  
  323.     public static void returnMsg(HttpServletResponse response, String msg)  
  324.     {  
  325.         Writer out = null;  
  326.         try  
  327.         {  
  328.             out = response.getWriter();  
  329.             out.write(msg);  
  330.             out.close();  
  331.         }  
  332.         catch (IOException e)  
  333.         {  
  334.             LOG.error(e);  
  335.         }  
  336.     }  
  337.       
  338.     /** 
  339.      *  
  340.      * @param str str 
  341.      * @param reg reg 
  342.      * @param newValue newValue 
  343.      * @return String 
  344.      */  
  345.     public static String replace(String str, String reg, String newValue)  
  346.     {  
  347.         if (!isEmpty(str))  
  348.         {  
  349.             Matcher matcher = Pattern.compile(reg, Pattern.CASE_INSENSITIVE).matcher(str);  
  350.               
  351.             str = matcher.replaceAll(newValue);  
  352.         }  
  353.         return str;  
  354.     }  
  355.       
  356.     /** 
  357.      *  
  358.      * @param str str 
  359.      * @param reg reg 
  360.      * @param newValue newValue 
  361.      * @param param param 
  362.      * @return String 
  363.      */  
  364.     public static String replace(String str, String reg, String newValue, int param)  
  365.     {  
  366.         if (!isEmpty(str))  
  367.         {  
  368.             Matcher matcher = Pattern.compile(reg, param).matcher(str);  
  369.               
  370.             str = matcher.replaceAll(newValue);  
  371.         }  
  372.         return str;  
  373.     }  
  374.       
  375.     /** 
  376.      * 〈移除字符串中的js代码 
  377.      *  
  378.      * @param str 
  379.      *            str 
  380.      * @return String 
  381.      */  
  382.     public static String removeScript(String str)  
  383.     {  
  384.         if (str == null || "".equals(str))  
  385.         {  
  386.             return "";  
  387.         }  
  388.           
  389.         int param = Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL;  
  390.         Matcher matcher = Pattern.compile("<script>.*</script>", param).matcher(str);  
  391.         str = matcher.replaceAll("");  
  392.         return str;  
  393.     }  
  394.       
  395.     /** 
  396.      * 字符串转成整数 
  397.      *  
  398.      * @param str 
  399.      *            字符 
  400.      * @return 数字 
  401.      */  
  402.     public static int parseInt(String str)  
  403.     {  
  404.         int result = 0;  
  405.         try  
  406.         {  
  407.             result = Integer.parseInt(str);  
  408.         }  
  409.         catch (Exception e)  
  410.         {  
  411.             result = 0;  
  412.         }  
  413.         return result;  
  414.     }  
  415.       
  416.     /** 
  417.      * 〈文件重命名〉 
  418.      *  
  419.      * @param realPath 
  420.      *            文件绝对路径 
  421.      * @param newName 
  422.      *            新文件名 
  423.      * @return String 
  424.      */  
  425.     public static String rename(String realPath, String newName)  
  426.     {  
  427.         File file = new File(realPath);  
  428.           
  429.         //包含后缀的文件名  
  430.         String fileName = file.getName();  
  431.           
  432.         //不包含后的文件名  
  433.         String name = fileName.substring(0, fileName.lastIndexOf('.'));  
  434.           
  435.         //带后的新文件名称  
  436.         newName = fileName.replace(name, newName);  
  437.           
  438.         realPath = realPath.replace(fileName, newName);  
  439.           
  440.         if (file.exists())  
  441.         {  
  442.             try  
  443.             {  
  444.                 if (!file.renameTo(new File(realPath)))  
  445.                 {  
  446.                    throw new Exception();  
  447.                 }  
  448.                   
  449.             }  
  450.             catch (Exception e)  
  451.             {  
  452.                e.printStackTrace();  
  453.             }  
  454.         }  
  455.           
  456.         return newName;  
  457.     }  
  458.       
  459.     /** 
  460.      * 把数组转换成字符串,并以逗号分隔 
  461.      *  
  462.      * @param arr 
  463.      *            arr 
  464.      * @return 转换结果 
  465.      */  
  466.     public static String arrayToString(String[] arr)  
  467.     {  
  468.           
  469.         if (arr == null)  
  470.         {  
  471.             return "";  
  472.         }  
  473.         StringBuffer buf = new StringBuffer();  
  474.         for (String str : arr)  
  475.         {  
  476.             if (str != null && !"".equals(str))  
  477.             {  
  478.                 buf.append(str).append(',');  
  479.             }  
  480.         }  
  481.         String result = buf.toString();  
  482.         result = result.replaceAll(",$""");  
  483.         return result;  
  484.     }  
  485.       
  486.     /** 
  487.      * 写Excel 
  488.      *  
  489.      * @param response 
  490.      *            response 
  491.      * @param file 
  492.      *            file 
  493.      */  
  494.     public static void writeExcel(HttpServletResponse response, File file)  
  495.     {  
  496.         if (file != null && file.exists())  
  497.         {  
  498.          
  499.           
  500.         response.reset();  
  501.         response.setContentType("application/vnd.ms-excel");  
  502.         response.addHeader("Content-Disposition""attachment; filename=\"" + file.getName() + "\"");  
  503.         InputStream inStream = null;  
  504.         try  
  505.         {  
  506.             inStream = new FileInputStream(file);  
  507.             int len = inStream.read();  
  508.             while (len != -1)  
  509.             {  
  510.                 response.getWriter().write(len);  
  511.                 len = inStream.read();  
  512.             }  
  513.         }  
  514.         catch (Exception e)  
  515.         {  
  516.               
  517.           e.printStackTrace();  
  518.         }  
  519.         finally  
  520.         {  
  521.             Util.close(inStream);  
  522.         }  
  523.         }  
  524.     }  
  525.       
  526.       
  527.       
  528.       
  529.     /** 
  530.      *  
  531.      * @param reg 
  532.      *            reg 
  533.      * @param str 
  534.      *            str 
  535.      * @return boolean 
  536.      */  
  537.     public static boolean test(String reg, String str)  
  538.     {  
  539.         Matcher matcher = Pattern.compile(reg).matcher(str);  
  540.         return matcher.find();  
  541.     }  
  542.       
  543.       
  544.     /** 
  545.      *关闭流 
  546.      * @param ins void 
  547.      */  
  548.     public static void close(InputStream ins)  
  549.     {  
  550.         if (ins != null)  
  551.         {  
  552.             try  
  553.             {  
  554.                 ins.close();  
  555.             }  
  556.             catch (IOException e)  
  557.             {  
  558.                 e.printStackTrace();  
  559.             }  
  560.         }  
  561.     }  
  562.       
  563.     /** 
  564.      * 关闭流 
  565.      * @param ous void 
  566.      */  
  567.     public static void close(OutputStream ous)  
  568.     {  
  569.         if (ous != null)  
  570.         {  
  571.             try  
  572.             {  
  573.                 ous.close();  
  574.             }  
  575.             catch (IOException e)  
  576.             {  
  577.                e.printStackTrace();  
  578.             }  
  579.         }  
  580.     }  
  581.       
  582.     /** 
  583.      *  
  584.      * 〈重新组装查询条件〉 
  585.      * 〈如果查询条件包含"_"就在"_"之前加上转义字符"/"〉 
  586.      * @param queryCondition 查询条件 
  587.      * @return String 
  588.      */  
  589.     public static String resetCondition(String queryCondition)  
  590.     {  
  591.         char[] temps = queryCondition.toCharArray();  
  592.           
  593.         //查询条件  
  594.         StringBuffer condition = new StringBuffer();  
  595.           
  596.         //重新组装查询条件的字符串,如果包"_"就在"_"之前加上转义字符"/"  
  597.         for (char temp : temps)  
  598.         {  
  599.             if ('_' == temp)  
  600.             {  
  601.                 condition.append('/').append(temp);  
  602.             }  
  603.             else  
  604.             {  
  605.                 condition.append(temp);  
  606.             }  
  607.         }  
  608.           
  609.         return condition.toString();  
  610.     }  
  611.       
  612.     /** 
  613.      *〈验证字符串是否为空〉 
  614.      * @param str str 
  615.      * @return boolean 
  616.      */  
  617.     public static boolean isEmpty(String str)  
  618.     {  
  619.         return str == null || "".equals(str);  
  620.     }  
  621.       
  622.     /** 
  623.      *〈验证字符串是否不为空〉 
  624.      * @param str str 
  625.      * @return boolean 
  626.      */  
  627.     public static boolean notEmpty(String str)  
  628.     {  
  629.         return !isEmpty(str);  
  630.     }  
  631.       
  632.     /** 
  633.      *〈验证字符串是否为空〉 
  634.      * @param str str 
  635.      * @return boolean 
  636.      */  
  637.     public static boolean isEmpty(Object str)  
  638.     {  
  639.         return str == null;  
  640.     }  
  641.       
  642.     /** 
  643.      *〈〈验证字符串是否为空〉 
  644.      * @param list list 
  645.      * @return boolean 
  646.      */  
  647.     public static boolean isEmpty(List<?> list)  
  648.     {  
  649.         return list == null || list.isEmpty();  
  650.     }  
  651.       
  652.     /** 
  653.      *〈〈验证字符串是否不为空〉 
  654.      * @param list list 
  655.      * @return boolean 
  656.      */  
  657.     public static boolean notEmpty(List<?> list)  
  658.     {  
  659.         return !isEmpty(list);  
  660.     }  
  661.       
  662.     /** 
  663.      *〈验证字符串是否为空〉 
  664.      * @param map 待处理的集合 
  665.      * @return boolean 
  666.      */  
  667.     public static boolean isEmpty(Map<?, ?> map)  
  668.     {  
  669.         return map == null || map.isEmpty();  
  670.     }  
  671.       
  672.     /** 
  673.      *〈验证字符串是否不为空〉 
  674.      * @param map 待处理的集合 
  675.      * @return boolean 
  676.      */  
  677.     public static boolean notEmpty(Map<?, ?> map)  
  678.     {  
  679.         return !isEmpty(map);  
  680.     }  
  681.       
  682.     /** 
  683.      *〈转换为小写 
  684.      * @param str str 
  685.      * @return String 
  686.      */  
  687.     public static String lowerCase(String str)  
  688.     {  
  689.           
  690.         if (str != null)  
  691.         {  
  692.             str = str.toLowerCase(Locale.CHINESE);  
  693.         }  
  694.           
  695.         return str;  
  696.     }  
  697.       
  698.     /** 
  699.      *〈转换为大写〉 
  700.      * @param str str 
  701.      * @return String 
  702.      */  
  703.     public static String upperCase(String str)  
  704.     {  
  705.           
  706.         if (str != null)  
  707.         {  
  708.             str = str.toUpperCase(Locale.CHINESE);  
  709.         }  
  710.           
  711.         return str;  
  712.     }  
  713.       
  714.     /** 
  715.      *〈一句话功能描述〉 
  716.      * @param cls cls 
  717.      * @param methodName methodName 
  718.      * @param classArr classArr 
  719.      * @return Method  
  720.      */  
  721.     @SuppressWarnings("unchecked")  
  722.     public static Method getMethod(Class<?> cls, String methodName, Class[] classArr)  
  723.     {  
  724.         Method mtd = null;  
  725.         try  
  726.         {  
  727.             mtd = cls.getDeclaredMethod(methodName, classArr);  
  728.         }  
  729.         catch (SecurityException e)  
  730.         {  
  731.             LOG.error(e);  
  732.         }  
  733.         catch (NoSuchMethodException e)  
  734.         {  
  735.             LOG.error(e);  
  736.         }  
  737.           
  738.         return mtd;  
  739.     }  
  740.       
  741.     /** 
  742.      * 获取当前服务器ip 
  743.      * @return String 
  744.      */  
  745.     public static String getLocalSiteIP()  
  746.     {  
  747.         String siteString = "";  
  748.         try  
  749.         {  
  750.             Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();  
  751.             NetworkInterface networkInterface = null;  
  752.             InetAddress ipAddress = null;  
  753.             while (netInterfaces.hasMoreElements())  
  754.             {  
  755.                 networkInterface = (NetworkInterface)netInterfaces.nextElement();  
  756.                 ipAddress = (InetAddress)networkInterface.getInetAddresses().nextElement();  
  757.                 if (ipAddress.isSiteLocalAddress() && !ipAddress.isLoopbackAddress()  
  758.                         && ipAddress.getHostAddress().indexOf(":") == -1)  
  759.                 {  
  760.                     siteString = ipAddress.getHostAddress();  
  761.                 }  
  762.             }  
  763.         }  
  764.         catch (Exception e)  
  765.         {  
  766.             e.toString();  
  767.         }  
  768.         return siteString;  
  769.     }  
  770.       
  771.     /** 
  772.      * 〈trim公共方法 
  773.      * 〈功能详细描述 
  774.      * @param str str 
  775.      * @return String 
  776.      */  
  777.     public static String trim(String str)  
  778.     {  
  779.         if (str != null)  
  780.         {  
  781.             str = str.trim();  
  782.         }  
  783.           
  784.         return str;  
  785.     }  
  786.       
  787.     /** 
  788.      * 检查算法表达式合法性 
  789.      * @param calculateScript 计算脚本 
  790.      * @return 返回true表达式合?,false表达式不合法 
  791.      */  
  792.     public static boolean checkCalculateScript(String calculateScript)  
  793.     {  
  794.         return true;  
  795.     }  
  796.       
  797.     /** 
  798.      * 获取系统时间 
  799.      * @return 当前系统时间 
  800.      */  
  801.     public static Date getSysDate()  
  802.     {  
  803.         SimpleDateFormat ft = null;  
  804.         Calendar cal = Calendar.getInstance();  
  805.           
  806.         // 格式可以自己根据要求修改  
  807.         ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  808.         String dateTime = ft.format(cal.getTime());  
  809.         Date nowDate = null;  
  810.         try  
  811.         {  
  812.             nowDate = ft.parse(dateTime);  
  813.         }  
  814.         catch (ParseException e)  
  815.         {  
  816.             LOG.error(e);  
  817.             //            e.printStackTrace();  
  818.         }  
  819.           
  820.         return nowDate;  
  821.     }  
  822.       
  823.     /** 
  824.      * 〈根据系统当前时间获取下一个月日期对象〉 
  825.      * 〈功能详细描述〉 
  826.      * @return Date 
  827.      */  
  828.     public static Date getNextMonth()  
  829.     {  
  830.         Calendar cal = Calendar.getInstance();  
  831.         cal.add(Calendar.MONTH, 1);  
  832.         return cal.getTime();  
  833.     }  
  834.       
  835.       
  836.     /** 
  837.      * 设置文件输出流的文件名 
  838.      * @param failName 文件名 
  839.      * @param response void 
  840.      */  
  841.     public static void responseSetHeader(String failName, HttpServletResponse response)  
  842.     {  
  843.         response.setHeader("Content-disposition""attachment; filename=" + failName);  
  844.         response.setContentType("application/msexcel");  
  845.     }  
  846.   
  847.     /** 
  848.      *〈为空验证〉 
  849.      * @param str 待验证字符串 
  850.      * @param prop prop 
  851.      * @return boolean 
  852.      */  
  853.     protected static boolean empty(String str, String prop)  
  854.     {  
  855.         if (str == null)  
  856.         {  
  857.             return false;  
  858.         }  
  859.           
  860.         if ("".equals(str.trim()))  
  861.         {  
  862.             return false;  
  863.         }  
  864.           
  865.         return true;  
  866.     }  
  867.       
  868.     /* 
  869.      *〈按字节验证字符串长度〉 
  870.      * @param str 待验证字符串 
  871.      * @param prop prop 
  872.      * @return boolean 
  873.      */  
  874.     /*    public static boolean byteLength(String str, String prop) 
  875.         { 
  876.             int length = 20; 
  877.              
  878.             if (Util.isEmpty(str)) 
  879.             { 
  880.                 return true; 
  881.             } 
  882.              
  883.             char[] chars = str.toCharArray(); 
  884.             int len = 0; 
  885.             for (int i = 0; i < chars.length; i++) 
  886.             { 
  887.                 len++; 
  888.                  
  889.                 //判断是否非字母 
  890.                 if (chars[i] / 0x80 == 0) 
  891.                 { 
  892.                     len++; 
  893.                 } 
  894.             } 
  895.              
  896.             return len <= length; 
  897.         }*/  
  898.   
  899.     /** 
  900.      *〈非法字符〉 
  901.      * @param str 待验证字符串 
  902.      * @param prop prop 
  903.      * @return boolean 
  904.      */  
  905.     protected static boolean lawless(String str)  
  906.     {  
  907.         boolean result = false;  
  908.           
  909.         if (Util.isEmpty(str))  
  910.         {  
  911.             result = true;  
  912.         }  
  913.           
  914.         result = !Util.test("^[-~!@#$%^&*()_+|=\\;':\",./<>?]+$", str);  
  915.           
  916.         return result;  
  917.     }  
  918.       
  919.     /** 
  920.      *〈验证只能为汉字〉 
  921.      * @param str 待验证字符串 
  922.      * @param prop prop 
  923.      * @return boolean 
  924.      */  
  925.     protected static boolean chinese(String str)  
  926.     {  
  927.         if (Util.isEmpty(str))  
  928.         {  
  929.             return true;  
  930.         }  
  931.           
  932.         return Util.test("^[\u4E00-\u9FA5]+$", str);  
  933.     }  
  934.       
  935.     /** 
  936.      *〈验证只能为字母〉 
  937.      * @param str 待验证字符串 
  938.      * @return boolean 
  939.      */  
  940.     protected static boolean letter(String str)  
  941.     {  
  942.         if (Util.isEmpty(str))  
  943.         {  
  944.             return true;  
  945.         }  
  946.           
  947.         return Util.test("^[a-zA-Z]+$", str);  
  948.     }  
  949.       
  950.     /** 
  951.      *〈验证数字是否在指定范围〉 
  952.      * @param str str 
  953.      * @param prop prop 
  954.      * @return boolean 
  955.      */  
  956.     protected static boolean number(String str)  
  957.     {  
  958.           
  959.         return true;  
  960.     }  
  961.       
  962.     /** 
  963.      *〈验证手机号码〉 
  964.      * @param str 待验证字符串 
  965.      * @param prop prop 
  966.      * @return boolean 
  967.      */  
  968.     protected static boolean mobile(String str)  
  969.     {  
  970.         if (Util.isEmpty(str))  
  971.         {  
  972.             return true;  
  973.         }  
  974.           
  975.         return Util.test("^1\\d{10}$", str);  
  976.     }  
  977.       
  978.     /** 
  979.      *〈验证IP〉 
  980.      * @param str 待验证字符串 
  981.      * @param prop prop 
  982.      * @return boolean 
  983.      */  
  984.     protected static boolean checkIP(String str)  
  985.     {  
  986.         if (Util.isEmpty(str))  
  987.         {  
  988.             return true;  
  989.         }  
  990.           
  991.         String pattern = "^(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])(\\.(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])){3}$";  
  992.         return Util.test(pattern, str);  
  993.     }  
  994.       
  995.     /** 
  996.      *〈验证日期〉 
  997.      * @param str 待验证字符串 
  998.      * @param prop prop 
  999.      * @return boolean 
  1000.      */  
  1001.     protected static boolean date(String str)  
  1002.     {  
  1003.         String pattern = "";  
  1004.           
  1005.         if (Util.isEmpty(str))  
  1006.         {  
  1007.             return true;  
  1008.         }  
  1009.           
  1010.         SimpleDateFormat format = new SimpleDateFormat(pattern);  
  1011.         try  
  1012.         {  
  1013.             format.parse(str);  
  1014.         }  
  1015.         catch (ParseException e)  
  1016.         {  
  1017.             return false;  
  1018.         }  
  1019.           
  1020.         return true;  
  1021.     }  
  1022.       
  1023.     /** 
  1024.      *〈验证邮编〉 
  1025.      * @param str 待验证字符串 
  1026.      * @param prop prop 
  1027.      * @return boolean 
  1028.      */  
  1029.     protected static boolean postalCode(String str)  
  1030.     {  
  1031.         if (Util.isEmpty(str))  
  1032.         {  
  1033.             return true;  
  1034.         }  
  1035.           
  1036.         //暂未实现  
  1037.           
  1038.         return true;  
  1039.     }  
  1040.       
  1041.     /** 
  1042.      *〈验证EMAIL〉 
  1043.      * @param str 待验证字符串  
  1044.      * @param prop prop 
  1045.      * @return boolean 
  1046.      */  
  1047.     protected static boolean email(String str)  
  1048.     {  
  1049.         if (Util.isEmpty(str))  
  1050.         {  
  1051.             return true;  
  1052.         }  
  1053.           
  1054.         return Util.test("^[a-zA-Z0-9_.]+@\\w+\\-?\\w+(\\.\\w+)$", str);  
  1055.     }  
  1056.       
  1057.     /* 
  1058.      *〈验证身份证〉 
  1059.      * @param str 待验证字符串 
  1060.      * @param prop prop 
  1061.      * @return boolean 
  1062.      */  
  1063.     /*    public static boolean checkID(String str) 
  1064.         { 
  1065.             if (Util.isEmpty(str)) 
  1066.             { 
  1067.                 return true; 
  1068.             } 
  1069.              
  1070.             if (Util.test("^\\d{17}[xX\\d]$", str)) 
  1071.             { 
  1072.                 return checkID18(str); 
  1073.             } 
  1074.             else if (Util.test("^\\d{15}$", str)) 
  1075.             { 
  1076.                 return checkID15(str); 
  1077.             } 
  1078.             else 
  1079.             { 
  1080.                 return false; 
  1081.             } 
  1082.         }*/  
  1083.   
  1084.     /*private static boolean checkID18(String str) 
  1085.     { 
  1086.         String year = str.substring(6, 2); 
  1087.         String month = str.substring(8, 2); 
  1088.         String day = str.substring(10, 2); 
  1089.         if (!Util.test("^\\d\\d$", year)) 
  1090.         { 
  1091.             return false; 
  1092.         } 
  1093.         if (!isMonth(month)) 
  1094.         { 
  1095.             return false; 
  1096.         } 
  1097.         if (!isDay(day)) 
  1098.         { 
  1099.             return false; 
  1100.         } 
  1101.         if (Util.parseInt(month) == 2 && Util.parseInt(day) > FEB_DAYES) 
  1102.         { 
  1103.             return false; 
  1104.         } 
  1105.         return true; 
  1106.     } 
  1107.      
  1108.     private static boolean checkID15(String str) 
  1109.     { 
  1110.         String year = str.substring(ID15_YEAR, 4); 
  1111.         String month = str.substring(ID15_MONTH, 2); 
  1112.         String day = str.substring(ID15_DAY, 2); 
  1113.          
  1114.         if (!isYear(year)) 
  1115.         { 
  1116.             return false; 
  1117.         } 
  1118.          
  1119.         if (!isMonth(month)) 
  1120.         { 
  1121.             return false; 
  1122.         } 
  1123.          
  1124.         if (!isDay(day)) 
  1125.         { 
  1126.             return false; 
  1127.         } 
  1128.          
  1129.         if (Util.parseInt(month) == 2 && Util.parseInt(day) > FEB_DAYES) 
  1130.         { 
  1131.             return false; 
  1132.         } 
  1133.          
  1134.         return true; 
  1135.     }*/  
  1136.   
  1137.     /** 
  1138.      *〈验证必须为数字〉 
  1139.      * @param str 待验证字符串 
  1140.      * @param prop prop 
  1141.      * @return boolean 
  1142.      */  
  1143.     protected static boolean mustNum(String str)  
  1144.     {  
  1145.         if (Util.isEmpty(str))  
  1146.         {  
  1147.             return true;  
  1148.         }  
  1149.           
  1150.         return Util.test("^\\d+$", str);  
  1151.     }  
  1152.       
  1153.     /** 
  1154.      *〈体重验证〉 
  1155.      * @param str 待验证字符串 
  1156.      * @param prop prop 
  1157.      * @return boolean 
  1158.      */  
  1159.     protected static boolean avoirdupois(String str)  
  1160.     {  
  1161.         if (Util.isEmpty(str))  
  1162.         {  
  1163.             return true;  
  1164.         }  
  1165.           
  1166.         return Util.test("^([3-9]\\d|1\\d\\d)(\\.\\d{0,2})?$", str);  
  1167.     }  
  1168.       
  1169.     /** 
  1170.      *〈验证身高〉 
  1171.      * @param str 待验证字符串 
  1172.      * @param prop prop 
  1173.      * @return boolean 
  1174.      */  
  1175.     protected static boolean stature(String str)  
  1176.     {  
  1177.         if (Util.isEmpty(str))  
  1178.         {  
  1179.             return true;  
  1180.         }  
  1181.           
  1182.         return Util.test("^([89]\\d|[12]\\d\\d)(\\.\\d{0,2})?$", str);  
  1183.     }  
  1184.       
  1185.     /** 
  1186.      *〈验证年龄〉 
  1187.      * @param str 待验证字符串 
  1188.      * @param prop prop 
  1189.      * @return boolean 
  1190.      */  
  1191.     protected static boolean age(String str)  
  1192.     {  
  1193.         if (Util.isEmpty(str))  
  1194.         {  
  1195.             return true;  
  1196.         }  
  1197.           
  1198.         return Util.test("^([1-9]|[1-9]\\d?)$", str);  
  1199.     }  
  1200.       
  1201.     /** 
  1202.      *〈验证鞋码〉 
  1203.      * @param str 待验证字符串 
  1204.      * @param prop prop 
  1205.      * @return boolean 
  1206.      */  
  1207.     protected static boolean shoeSize(String str)  
  1208.     {  
  1209.         if (Util.isEmpty(str))  
  1210.         {  
  1211.             return true;  
  1212.         }  
  1213.           
  1214.         return Util.test("(^[34]\\d$)|(^50$)", str);  
  1215.     }  
  1216.    
  1217.     /** 
  1218.      * 判断是否为数字,包含浮点型 
  1219.      * @param str 
  1220.      * @return  
  1221.      */  
  1222.     public static boolean checkNum(String str)  
  1223.     {  
  1224.         if (Util.isEmpty(str))  
  1225.         {  
  1226.             return true;  
  1227.         }  
  1228.           
  1229.         return Util.test("^\\d+(\\.\\d+){0,1}$", str);  
  1230.     }  
  1231.       
  1232.     public static void main(String[] args) {  
  1233.         System.out.println(checkNum("12"));  
  1234.     }  
  1235.       
  1236. }  

你可能感兴趣的:(开发中日常操作转化工具类)