JAVA常用工具类

  1. /**  
  2.  
  3. * 字 符串操作的工具类  
  4. * @since 1.0  
  5.  
  6. */   
  7. public   class  StringUtil {  
  8.      
  9.     /**  
  10.      * 将 一字符串转换成拼音首字母  
  11.      *   
  12.      * @since 1.1  
  13.      * @param strText  
  14.      *            字符串  
  15.      * @return 字符串对应的拼音首字母  
  16.      */   
  17.     public   static  String getFirstPY(String strText) {  
  18.         if  (strText ==  null  || strText.trim().length() ==  0 )  
  19.             return   "" ;  
  20.         String ret = "" ;  
  21.         for  ( int  i =  0 ; i < strText.length(); i++) {  
  22.             char  ch = strText.charAt(i);  
  23.             if  ( '\u4E00'  <= ch &&  '\u9FA5'  >= ch)  
  24.                 ret = ret + strChineseFirstPY.charAt(ch - 19968 );  
  25.             else   
  26.                 ret = ret + ch;  
  27.         }  
  28.   
  29.         return  ret;  
  30.     }  
  31.   
  32.     /**  
  33.      * 替 换字符串  
  34.      *   
  35.      * @since 1.1  
  36.      * @param strSc  
  37.      *            需要进行替换的字符串  
  38.      * @param oldStr  
  39.      *            源字符串  
  40.      * @param newStr  
  41.      *            替换后的字符串  
  42.      * @return 替换后对应的字符串  
  43.      */   
  44.     public   static  String replace(String strSc, String oldStr, String newStr) {  
  45.         String ret = strSc;  
  46.         if  (ret !=  null  && oldStr !=  null  && newStr !=  null ) {  
  47.             ret = strSc.replaceAll(oldStr, newStr);  
  48.         }  
  49.         return  ret;  
  50.     }  
  51.   
  52.     /**  
  53.      * 替 换字符串,修复java.lang.String类的replaceAll方法时第一参数是字符串常量正则时(如:"address".  
  54.      * replaceAll("dd","$");)的抛出异 常:java.lang.StringIndexOutOfBoundsException:  
  55.      * String index out of range: 1的问题。  
  56.      *   
  57.      * @since 1.2  
  58.      * @param strSc  
  59.      *            需要进行替换的字符串  
  60.      * @param oldStr  
  61.      *            源字符串  
  62.      * @param newStr  
  63.      *            替换后的字符串  
  64.      * @return 替换后对应的字符串  
  65.      */   
  66.     public   static  String replaceAll(String strSc, String oldStr, String newStr) {  
  67.         int  i = - 1 ;  
  68.         while  ((i = strSc.indexOf(oldStr)) != - 1 ) {  
  69.             strSc = new  StringBuffer(strSc.substring( 0 , i)).append(newStr)  
  70.                     .append(strSc.substring(i + oldStr.length())).toString();  
  71.         }  
  72.         return  strSc;  
  73.     }  
  74.   
  75.     /**  
  76.      * 将 字符串转换成HTML格式的字符串  
  77.      *   
  78.      * @since 1.1  
  79.      * @param str  
  80.      *            需要进行转换的字符串  
  81.      * @return 转换后的字符串  
  82.      */   
  83.     public   static  String toHtml(String str) {  
  84.         String html = str;  
  85.         if  (str ==  null  || str.length() ==  0 ) {  
  86.             return   "" ;  
  87.         } else  {  
  88.             html = replace(html, "&""&" );  
  89.             html = replace(html, "<""<" );  
  90.             html = replace(html, ">"">" );  
  91.             html = replace(html, "\r\n""\n" );  
  92.             html = replace(html, "\n""<br>\n" );  
  93.             html = replace(html, "\"""" ");  
  94.             html = replace(html, " "" " );  
  95.             return  html;  
  96.         }  
  97.     }  
  98.   
  99.     /**  
  100.      * 将 HTML格式的字符串转换成常规显示的字符串  
  101.      *   
  102.      * @since 1.1  
  103.      * @param str  
  104.      *            需要进行转换的字符串  
  105.      * @return 转换后的字符串  
  106.      */   
  107.     public   static  String toText(String str) {  
  108.         String text = str;  
  109.         if  (str ==  null  || str.length() ==  0 ) {  
  110.             return   "" ;  
  111.         } else  {  
  112.             text = replace(text, "&""&" );  
  113.             text = replace(text, "<""<" );  
  114.             text = replace(text, ">"">" );  
  115.             text = replace(text, "<br>\n""\n" );  
  116.             text = replace(text, "<br>""\n" );  
  117.             text = replace(text, "" ", " \ "" );  
  118.             text = replace(text, " "" " );  
  119.             return  text;  
  120.         }  
  121.     }  
  122.   
  123.     /**  
  124.      * 将 一字符串数组以某特定的字符串作为分隔来变成字符串  
  125.      *   
  126.      * @since 1.0  
  127.      * @param strs  
  128.      *            字符串数组  
  129.      * @param token  
  130.      *            分隔字符串  
  131.      * @return 以token为分隔的字符串  
  132.      */   
  133.     public   static  String join(String[] strs, String token) {  
  134.         if  (strs ==  null )  
  135.             return   null ;  
  136.         StringBuffer sb = new  StringBuffer();  
  137.         for  ( int  i =  0 ; i < strs.length; i++) {  
  138.             if  (i !=  0 )  
  139.                 sb.append(token);  
  140.             sb.append(strs[i]);  
  141.         }  
  142.         return  sb.toString();  
  143.     }  
  144.   
  145.     /**  
  146.      * 将 一字符串以某特定的字符串作为分隔来变成字符串数组  
  147.      *   
  148.      * @since 1.0  
  149.      * @param str  
  150.      *            需要拆分的字符串("@12@34@56")  
  151.      * @param token  
  152.      *            分隔字符串("@")  
  153.      * @return 以token为分隔的拆分开的字符串数组  
  154.      */   
  155.     public   static  String[] split(String str, String token) {  
  156.         String temp = str.substring(1 , str.length());  
  157.         return  temp.split(token);  
  158.     }  
  159.   
  160.     /**  
  161.      * 验 证字符串合法性  
  162.      *   
  163.      * @since 1.0  
  164.      * @param str  
  165.      *            需要验证的字符串  
  166.      * @param test  
  167.      *            非法字符串(如:"~!#$%^&*()',;:?")  
  168.      * @return true:非法;false:合法  
  169.      */   
  170.     public   static   boolean  check(String str, String test) {  
  171.         if  (str ==  null  || str.equals( "" ))  
  172.             return   true ;  
  173.         boolean  flag =  false ;  
  174.         for  ( int  i =  0 ; i < test.length(); i++) {  
  175.             if  (str.indexOf(test.charAt(i)) != - 1 ) {  
  176.                 flag = true ;  
  177.                 break ;  
  178.             }  
  179.         }  
  180.         return  flag;  
  181.     }  
  182.   
  183.     /**  
  184.      * 将 数值型字符串转换成Integer型  
  185.      *   
  186.      * @since 1.0  
  187.      * @param str  
  188.      *            需要转换的字符型字符串  
  189.      * @param ret  
  190.      *            转换失败时返回的值  
  191.      * @return 成功则返回转换后的Integer型值;失败则返回ret  
  192.      */   
  193.     public   static  Integer String2Integer(String str, Integer ret) {  
  194.         try  {  
  195.             return  Integer.parseInt(str);  
  196.         } catch  (NumberFormatException e) {  
  197.             return  ret;  
  198.         }  
  199.     }  
  200.   
  201.     /**  
  202.      * 将 数值型转换成字符串  
  203.      *   
  204.      * @since 1.0  
  205.      * @param it  
  206.      *            需要转换的Integer型值  
  207.      * @param ret  
  208.      *            转换失败的返回值  
  209.      * @return 成功则返回转换后的字符串;失败则返回ret  
  210.      */   
  211.     public   static  String Integer2String(Integer it, String ret) {  
  212.         try  {  
  213.             return  Integer.toString(it);  
  214.         } catch  (NumberFormatException e) {  
  215.             return  ret;  
  216.         }  
  217.     }  
  218.   
  219.     /**  
  220.      * 比 较两字符串大小(ASCII码顺序)  
  221.      *   
  222.      * @since 1.1  
  223.      * @param str1  
  224.      *            参与比较的字符串1  
  225.      * @param str2  
  226.      *            参与比较的字符串2  
  227.      * @return str1>str2:1;str1<str2:-1;str1=str2:0  
  228.      */   
  229.     public   static   int  compare(String str1, String str2) { //   
  230.         if  (str1.equals(str2)) {  
  231.             return   0 ;  
  232.         }  
  233.         int  str1Length = str1.length();  
  234.         int  str2Length = str2.length();  
  235.         int  length =  0 ;  
  236.         if  (str1Length > str2Length) {  
  237.             length = str2Length;  
  238.         } else  {  
  239.             length = str1Length;  
  240.         }  
  241.         for  ( int  i =  0 ; i < length; i++) {  
  242.             if  (str1.charAt(i) > str2.charAt(i)) {  
  243.                 return   1 ;  
  244.             }  
  245.         }  
  246.         return  - 1 ;  
  247.     }  
  248.   
  249.     /**  
  250.      * 将 阿拉伯数字的钱数转换成中文方式  
  251.      *   
  252.      * @since 1.1  
  253.      * @param num  
  254.      *            需要转换的钱的阿拉伯数字形式  
  255.      * @return 转换后的中文形式  
  256.      */   
  257.     public   static  String num2Chinese( double  num) {  
  258.         String result = "" ;  
  259.         String str = Double.toString(num);  
  260.         if  (str.contains( "." )) {  
  261.             String begin = str.substring(0 , str.indexOf( "." ));  
  262.             String end = str.substring(str.indexOf("." ) +  1 , str.length());  
  263.             byte [] b = begin.getBytes();  
  264.             int  j = b.length;  
  265.             for  ( int  i =  0 , k = j; i < j; i++, k--) {  
  266.                 result += getConvert(begin.charAt(i));  
  267.                 if  (! "零" .equals(result.charAt(result.length() -  1 ) +  "" )) {  
  268.                     result += getWei(k);  
  269.                 }  
  270.                 System.out.println(result);  
  271.   
  272.             }  
  273.             for  ( int  i =  0 ; i < result.length(); i++) {  
  274.                 result = result.replaceAll("零零""零" );  
  275.             }  
  276.             if  ( "零" .equals(result.charAt(result.length() -  1 ) +  "" )) {  
  277.                 result = result.substring(0 , result.length() -  1 );  
  278.             }  
  279.             result += "元" ;  
  280.             byte [] bb = end.getBytes();  
  281.             int  jj = bb.length;  
  282.             for  ( int  i =  0 , k = jj; i < jj; i++, k--) {  
  283.                 result += getConvert(end.charAt(i));  
  284.                 if  (bb.length ==  1 ) {  
  285.                     result += "角" ;  
  286.                 } else   if  (bb.length ==  2 ) {  
  287.                     result += getFloat(k);  
  288.                 }  
  289.             }  
  290.         } else  {  
  291.             byte [] b = str.getBytes();  
  292.             int  j = b.length;  
  293.             for  ( int  i =  0 , k = j; i < j; i++, k--) {  
  294.                 result += getConvert(str.charAt(i));  
  295.                 result += getWei(k);  
  296.             }  
  297.         }  
  298.         return  result;  
  299.     }  
  300.   
  301.     private   static  String getConvert( char  num) {  
  302.         if  (num ==  '0' ) {  
  303.             return   "零" ;  
  304.         } else   if  (num ==  '1' ) {  
  305.             return   "一" ;  
  306.         } else   if  (num ==  '2' ) {  
  307.             return   "二" ;  
  308.         } else   if  (num ==  '3' ) {  
  309.             return   "三" ;  
  310.         } else   if  (num ==  '4' ) {  
  311.             return   "四" ;  
  312.         } else   if  (num ==  '5' ) {  
  313.             return   "五" ;  
  314.         } else   if  (num ==  '6' ) {  
  315.             return   "六" ;  
  316.         } else   if  (num ==  '7' ) {  
  317.             return   "七" ;  
  318.         } else   if  (num ==  '8' ) {  
  319.             return   "八" ;  
  320.         } else   if  (num ==  '9' ) {  
  321.             return   "九" ;  
  322.         } else  {  
  323.             return   "" ;  
  324.         }  
  325.     }  
  326.   
  327.     private   static  String getFloat( int  num) {  
  328.         if  (num ==  2 ) {  
  329.             return   "角" ;  
  330.         } else   if  (num ==  1 ) {  
  331.             return   "分" ;  
  332.         } else  {  
  333.             return   "" ;  
  334.         }  
  335.     }  
  336.   
  337.     private   static  String getWei( int  num) {  
  338.         if  (num ==  1 ) {  
  339.             return   "" ;  
  340.         } else   if  (num ==  2 ) {  
  341.             return   "十" ;  
  342.         } else   if  (num ==  3 ) {  
  343.             return   "百" ;  
  344.         } else   if  (num ==  4 ) {  
  345.             return   "千" ;  
  346.         } else   if  (num ==  5 ) {  
  347.             return   "万" ;  
  348.         } else   if  (num ==  6 ) {  
  349.             return   "十" ;  
  350.         } else   if  (num ==  7 ) {  
  351.             return   "百" ;  
  352.         } else   if  (num ==  8 ) {  
  353.             return   "千" ;  
  354.         } else   if  (num ==  9 ) {  
  355.             return   "亿" ;  
  356.         } else   if  (num ==  10 ) {  
  357.             return   "十" ;  
  358.         } else   if  (num ==  11 ) {  
  359.             return   "百" ;  
  360.         } else   if  (num ==  12 ) {  
  361.             return   "千" ;  
  362.         } else   if  (num ==  13 ) {  
  363.             return   "兆" ;  
  364.         } else  {  
  365.             return   "" ;  
  366.         }  
  367.     }  
  368.     /**  
  369.      * 将 字符串的首字母改为大写  
  370.      *   
  371.      * @since 1.2  
  372.      * @param str  
  373.      *            需要改写的字符串  
  374.      * @return 改写后的字符串  
  375.      */   
  376.     public   static  String firstToUpper(String str){  
  377.         return  str.substring( 0 , 1 ).toUpperCase()+str.substring( 1 );  
  378.     } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值