`

String工具类

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

相关推荐

    String工具类String工具类String工具类

    String工具类String工具类String工具类

    javaString工具类

    String工具类

    java工具类(String)

    Java中的字符串处理是编程工作中非常常见且重要的任务,而String工具类则提供了许多方便实用的方法,使得我们在处理字符串时能够更加高效。以下是对Java String工具类的详细解析: 首先,了解Java中的String类。在...

    安卓String工具类

    安卓String工具类,验证是否是合法的邮箱 char类型转封装 复制数据Assets文件夹里的文件 时间格式

    String封装工具类

    在Java中,Apache Commons Lang是一个常用的库,其中的StringUtils类就是这样一个强大的String工具类。它包含在`commons-lang3-3.0-beta.jar`中,这是一个开源项目,提供了大量对Java内置类的扩展。 Apache Commons...

    java开发工具类(14个)

    - String工具类:字符串操作,如拼接、格式化、校验等。 - JSON工具类:解析和生成JSON对象,可能包含Gson、Jackson或Fastjson库的封装。 - IO工具类:文件读写、流操作等,用于处理文件和数据流。 - Log工具类...

    50个左右的JAVA工具类,相对比较全

    1. **String工具类**:例如Apache Commons Lang的StringUtils,提供丰富的字符串操作,如空白字符处理、格式化、比较、分割等。 2. **日期时间工具类**:如Java 8中的java.time包,或者Apache Commons Lang的...

    android 开发常用工具类集合

    String工具类 Toast工具类 自定义圆形imageView (CircleImageView) 自定义loadingDialog 自定义带旋转动画的loadingDialog 2018.10.27 修改Toast工具类 添加可以在服务中进行提示的toast 添加设备信息工具...

    个人总结常用经典Utils工具类

    1、Utils工具类有String工具类、XmlNode节点工具类、BeanFactory相关、Common工具类、Cookie工具类、Date工具类、Http工具类、JDBC工具类、日志Log工具类、Servlet相关等。2、工具类省了重复造轮子的工作,可以直接...

    java常用工具类

    以下是根据标题“java常用工具类”和描述中提到的“date工具类”、“string工具类”等进行的详细知识点解析: 1. **Date和Calendar工具类**: - `java.util.Date`:表示特定瞬间,精确到毫秒。但直接操作日期对象...

    StringUtil工具类

    StringUtil工具类 是对String 对象封装操作

    java工具类

    1. **String工具类**:在Java中,String对象是不可变的,因此开发人员经常需要使用工具类来执行诸如格式化、比较、截取、替换等操作。例如Apache Commons Lang中的StringUtils提供了丰富的字符串操作方法,如isBlank...

    StringUtil.java工具类

    StringUtil工具类java学习的好东西!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...

    String和Date工具类

    本篇文章将详细讲解`String`和`Date`工具类中涉及的知识点,以及如何在实际开发中有效地运用它们。 首先,我们来看`String`工具类。在Java中,`String`对象是不可变的,这意味着一旦创建,就不能改变其内容。因此,...

    Android静默安装常用工具类

    String工具类,可用于常见字符串操作,如: isEmpty(String str) 判断字符串是否为空或长度为0 isBlank(String str) 判断字符串是否为空或长度为0 或由空格组成 utf8Encode(String str) 以utf-8格式编码 ...

    String帮助工具类

    主要集成了java开发中对String类型 和一些常用到的方法进行的整合

    字符转换工具类

    在IT行业中,字符转换工具类是编程中常见的一种实用工具,尤其在处理字符串与各种编码格式之间转换时显得尤为重要。这个“字符转换工具类”似乎是一个专门为生成HTML源码而设计的工具,它包含了全面的源码实现,并且...

Global site tag (gtag.js) - Google Analytics