一些String方法

           

          import java.util.ArrayList;

          /**
           * 字符串的處理
           
          */

          public class StringMethods {
              
          private String strin = null;

              
          public StringMethods(String strin) {
                  
          this.strin = strin;
              }


              
          /**
               * 全部替換字符串里符合指定內(nèi)容的為其它內(nèi)容,與String類中不同,它使用的不是正則表達(dá)式的。
               * 
               * 
          @param String
               *            regex, 需要替換的內(nèi)容
               * 
          @param String
               *            replacement, 用來(lái)替換的內(nèi)容
               * 
          @return String, 字符串替換后的內(nèi)容
               
          */

              
          public String replaceAll(String regex, String replacement) {
                  StringBuffer sb 
          = new StringBuffer();
                  
          int rbegin = 0;
                  
          int rend = strin.indexOf(regex);
                  
          int rlen = regex.length();
                  
          while (rend >= 0{
                      sb.append(strin.substring(rbegin, rend));
                      sb.append(replacement);
                      rbegin 
          = rend + rlen;
                      rend 
          = strin.indexOf(regex, rbegin);
                  }

                  sb.append(strin.substring(rbegin));
                  strin 
          = sb.toString();
                  
          return strin;
              }


              
          /**
               * 切割字符串,用字符切割,并從指定位置開始
               * 
               * 
          @param char
               *            c, 用來(lái)切割的字符
               * 
          @param int
               *            it, 起始切割位置
               * 
          @return String[],切割后的字符串?dāng)?shù)組
               
          */

              
          public String[] split(char c, int it) {
                  ArrayList arraylist 
          = new ArrayList();
                  
          char[] chark = strin.toCharArray();
                  StringBuffer sb 
          = new StringBuffer();
                  
          for (int i = it; i < chark.length; i++{
                      
          if (chark[i] == c) {
                          arraylist.add(sb.toString());
                          sb 
          = new StringBuffer();
                      }
           else {
                          sb.append(chark[i]);
                          
          if (i == chark.length - 1{
                              arraylist.add(sb.toString());
                          }

                      }

                  }


                  
          int k = arraylist.size();
                  String as[] 
          = new String[k];
                  
          return (String[]) arraylist.subList(0, k).toArray(as);
              }


              
          /**
               * 用指定字符切割字符串
               * 
               * 
          @param char
               *            c, 切割用的字符
               * 
          @return String[], 切割成的字符串?dāng)?shù)組
               
          */

              
          public String[] split(char c) {
                  
          return split(c, 0);
              }


              
          /**
               * 用字符串切割字符串
               * 
               * 
          @param String
               *            c, 用來(lái)切割的字符串
               * 
          @param String[],
               *            切割成的字符串
               
          */

              
          public String[] split(String c) {
                  System.out.println(
          "分隔符: " + c);
                  
          if (strin == null{
                      
          return null;
                  }


                  ArrayList arraylist 
          = new ArrayList();
                  
          int begin = 0;
                  
          int end = 0;
                  
          while ((begin = strin.indexOf(c, end)) != -1{
                      String s2 
          = strin.substring(end, begin);
                      
          if (s2.trim().length() > 0// 過(guò)濾掉空格的
                          arraylist.add(strin.substring(end, begin));
                      }

                      end 
          = begin + c.length();
                  }

                  
          if (end != strin.length()) {
                      arraylist.add(strin.substring(end));
                  }


                  
          int k = arraylist.size();
                  String as[] 
          = new String[k];
                  System.out.println(
          "分隔數(shù)量 : " + as.length);
                  
          return (String[]) arraylist.subList(0, k).toArray(as);
              }


              
          /**
               * 把一個(gè)字符轉(zhuǎn)化成二進(jìn)制的
               * 
               * 
          @param char
               *            c, 原字符
               * 
          @param String,
               *            二進(jìn)制字符串
               
          */

              
          public static String toBin(char c) {
                  
          int k = 0x8000;
                  StringBuffer sb 
          = new StringBuffer(16);
                  
          for (int i = 0; i < 16; k >>>= 1, i++{
                      sb.append(((c 
          & k) != 0? 1 : 0);
                  }

                  
          return sb.toString();
              }


              
          /**
               * 判斷一個(gè)字符是Ascill字符還是其它字符(如漢,日,韓文字符)
               * 
               * 
          @param char
               *            c, 需要判斷的字符
               * 
          @return boolean, 返回true,Ascill字符
               
          */

              
          public static boolean isLetter(char c) {
                  
          int k = 0x80;
                  
          return c / k == 0 ? true : false;
              }


              
          /**
               * 得到一個(gè)字符串的長(zhǎng)度,顯示的長(zhǎng)度,一個(gè)漢字或日韓文長(zhǎng)度為2,英文字符長(zhǎng)度為1
               * 
               * 
          @param String
               *            s ,需要得到長(zhǎng)度的字符串
               * 
          @return int, 得到的字符串長(zhǎng)度
               
          */

              
          public static int length(String s) {
                  
          char[] c = s.toCharArray();
                  
          int len = 0;
                  
          for (int i = 0; i < c.length; i++{
                      len
          ++;
                      
          if (!isLetter(c[i])) {
                          len
          ++;
                      }

                  }

                  
          return len;
              }


              
          /**
               * 從開始位置獲取len個(gè)字符位的字符串,不區(qū)分中英文
               * 
               * 
          @param String
               *            origin, 原始字符串
               * 
          @param int
               *            len, 切割的長(zhǎng)度(一個(gè)漢字長(zhǎng)度按2算的)
               * 
          @return String, 切割后的字符串
               
          */

              
          public static String substring(String origin, int len) {
                  
          return substring(origin, 0, len);
              }


              
          /**
               * 截取一段字符的長(zhǎng)度,不區(qū)分中英文,如果數(shù)字不正好,則多取一個(gè)字符位
               * 
               * 
          @param String
               *            origin, 原始字符串
               * 
          @param int
               *            begin, 開始位置
               * 
          @param int
               *            len, 截取長(zhǎng)度(一個(gè)漢字長(zhǎng)度按2算的)
               * 
          @return String, 返回的字符串
               
          */

              
          public static String substring(String origin, int begin, int len) {
                  
          if (origin == null{
                      
          return origin;
                  }

                  
          int sBegin = (begin < 0? 0 : begin;
                  
          // 越出范圍處理
                  if (len < 1 || sBegin > origin.length()) {
                      
          return "";
                  }


                  
          if (len + sBegin > origin.length()) {
                      
          return origin.substring(sBegin);
                  }

                  
          char[] c = origin.toCharArray();
                  StringBuffer sb 
          = new StringBuffer();
                  
          for (int i = sBegin, j = sBegin; i < (sBegin + 2 * len); i++, j++{
                      
          if (j >= c.length)
                          
          break;

                      sb.append(c[j]);
                      
          if (!isLetter(c[j])) {
                          i
          ++;
                      }

                  }

                  
          return sb.toString();
              }


              
          public String toString() {
                  
          return strin;
              }


              
          /**
               * 把一個(gè)html的字符串轉(zhuǎn)換成網(wǎng)頁(yè)上顯示的字符串
               * 
               * 
          @param String
               *            html, 原h(huán)tml格式的字符串
               * 
          @return String, 轉(zhuǎn)換后網(wǎng)頁(yè)顯示格式的字符串
               
          */

              
          public static String htmlToWeb(String html) {
                  
          if (html == null || html.length() == 0{
                      
          return "";
                  }

                  
          char[] c = html.toCharArray();
                  StringBuffer sb 
          = new StringBuffer();
                  
          for (int i = 0; i < c.length; i++{
                      
          switch (c[i]) {
                      
          case '>':
                          sb.append(
          "&gt;");
                          
          break;
                      
          case '<':
                          sb.append(
          "&lt;");
                          
          break;
                      
          case ' ':
                          sb.append(
          "&nbsp;");
                          
          break;
                      
          case '"':
                          sb.append(
          "&quot;");
                          
          break;
                      
          case '&':
                          sb.append(
          "&amp;");
                          
          break;
                      
          case '\n':
                          sb.append(
          "<br>");
                          
          break;
                      
          default:
                          sb.append(c[i]);
                      }

                  }

                  
          return sb.toString();
              }

          }

          posted on 2007-07-21 22:14 hugh 閱讀(1184) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA

          <2007年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          小弟打算把硬盤里的所有資料整理到博客里,但是其中收藏了不少網(wǎng)上的文章(個(gè)人也記不住作者),請(qǐng)作者見諒!請(qǐng)知道作者的朋友(或作者本人)看到了請(qǐng)告訴小弟,小弟好把作者加上!

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 阜南县| 福安市| 阿瓦提县| 新和县| 奇台县| 华坪县| 乐清市| 廉江市| 健康| 庄河市| 拉孜县| 东光县| 锡林浩特市| 奎屯市| 红桥区| 南澳县| 汶川县| 瑞丽市| 康定县| 旺苍县| 佛冈县| 万安县| 乌拉特中旗| 增城市| 普兰店市| 大埔区| 罗甸县| 会昌县| 丰镇市| 台北县| 遂溪县| 和林格尔县| 凉城县| 株洲县| 延寿县| 乐平市| 定安县| 工布江达县| 遂平县| 甘谷县| 迁西县|