`

JAVA常用工具类

    博客分类:
  • j2ee
阅读更多
  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.     } 
分享到:
评论

相关推荐

    java常用工具类

    "java常用工具类"这个主题涵盖了Java开发中常用的类和方法,这些工具类可以帮助我们简化编程工作,提高代码的可读性和可维护性。在Java中,`java.util`包就是这样一个包含大量工具类的包,提供了很多实用的功能。 1...

    Java常用工具类

    Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...

    Java常用工具类大全,工作5年精心整理.zip

    "Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...

    java 常用工具类

    在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面将详细讨论Java工具类中的关键知识点。 1. **集合框架**: `java.util`包下的集合框架是Java中处理数据结构的核心。它包括List(如...

    Java常用工具类包包含各种常用开发工具

    "Java常用工具类包"是一个集合,它包含了多种针对不同场景的工具类,如文件操作、文本处理、对象转换等。下面将详细介绍这些工具类的主要功能及其应用场景。 1. **文件对比**: - Java中的`java.io.File`类可以...

    java常用工具类整理

    "java常用工具类整理"这个主题涵盖了Java开发中常用的工具类,这些类在日常编程中非常实用,能大大提高开发效率。这里我们将深入探讨一些常见的Java工具类,并结合`com-jarvis-base`这个文件名,推测这是一个基础...

    java常用工具类的封装jar

    并且在平时开发中会遇到各种各样通用的一些功能,比如对json的处理,对String对象的处理,对Excel文件的处理,MD5加密处理,Bean对象处理等等,这些常用并通用的方法可以被封装成一个个工具类如StringUtil,...

    Java常用工具类集合

    在Java编程语言中,工具类集合是一系列实用的类,它们提供了各种通用功能,帮助开发者更高效地编写代码。这些工具类通常包含在Java的`java.util`以及其他相关的包中,如`java.text`,`javax.imageio`,`javax.xml`等...

    java常用工具类集合(也有转自他人的)

    "java常用工具类集合"是一个综合性的资源,它包含了从不同来源收集的实用工具类,旨在帮助开发者提高效率,减少代码重复。下面,我们将深入探讨这个主题,分析其中可能包含的知识点。 首先,`opslabJutil-master....

    一些java常用的工具类

    JUnit是Java中广泛使用的单元测试框架,它提供了断言、测试套件等功能,帮助开发者编写可测试的代码。 总之,Java工具类是提高开发效率的关键,它们封装了常见的操作,减少了代码重复,提高了代码可读性和维护性。...

    java常用工具类封装

    "java常用工具类封装"是指将常见的功能如线程管理、数据解析、第三方库集成等进行封装,以提高代码的可重用性和可维护性。下面我们将深入探讨这些知识点: 1. **线程池**: Java中的线程池是由`java.util....

    Java常用工具类大全

    提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...

    java常用工具类汇总

    "Java常用工具类汇总"是一个集合了各种实用工具类的资源,旨在方便开发者在处理常见任务时提高效率。这个工具类库覆盖了字符串、文件、数组以及数学等多个方面,同时也提供了相应的API文档,使得开发者能够更好地...

    牛逼的java常用工具类

    在这个名为"牛逼的java常用工具类"的压缩包中,我们可以期待找到一些由经验丰富的开发者精心设计和优化的工具类,这些工具类能极大地提高开发效率,减少代码量,使程序更加健壮。下面,我们将详细探讨一些可能包含在...

Global site tag (gtag.js) - Google Analytics