一些String方法

           

          import java.util.ArrayList;

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

          public class StringMethods {
              
          private String strin = null;

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


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

              
          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, 用來切割的字符
               * 
          @param int
               *            it, 起始切割位置
               * 
          @return String[],切割后的字符串數組
               
          */

              
          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[], 切割成的字符串數組
               
          */

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


              
          /**
               * 用字符串切割字符串
               * 
               * 
          @param String
               *            c, 用來切割的字符串
               * 
          @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// 過濾掉空格的
                          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(
          "分隔數量 : " + as.length);
                  
          return (String[]) arraylist.subList(0, k).toArray(as);
              }


              
          /**
               * 把一個字符轉化成二進制的
               * 
               * 
          @param char
               *            c, 原字符
               * 
          @param String,
               *            二進制字符串
               
          */

              
          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();
              }


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

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


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

              
          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個字符位的字符串,不區分中英文
               * 
               * 
          @param String
               *            origin, 原始字符串
               * 
          @param int
               *            len, 切割的長度(一個漢字長度按2算的)
               * 
          @return String, 切割后的字符串
               
          */

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


              
          /**
               * 截取一段字符的長度,不區分中英文,如果數字不正好,則多取一個字符位
               * 
               * 
          @param String
               *            origin, 原始字符串
               * 
          @param int
               *            begin, 開始位置
               * 
          @param int
               *            len, 截取長度(一個漢字長度按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;
              }


              
          /**
               * 把一個html的字符串轉換成網頁上顯示的字符串
               * 
               * 
          @param String
               *            html, 原html格式的字符串
               * 
          @return String, 轉換后網頁顯示格式的字符串
               
          */

              
          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) 評論(0)  編輯  收藏 所屬分類: JAVA

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

          導航

          統計

          公告

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

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 称多县| 勐海县| 新绛县| 岗巴县| 南召县| 获嘉县| 浮山县| 肥城市| 墨玉县| 乌审旗| 乡宁县| 台湾省| 宁化县| 滕州市| 犍为县| 广东省| 岳阳市| 武宣县| 辰溪县| 肥城市| 抚宁县| 甘洛县| 惠来县| 邵武市| 历史| 波密县| 益阳市| 介休市| 桑日县| 鲁山县| 盘锦市| 喜德县| 内丘县| 淮北市| 博湖县| 成安县| 庄河市| 邹平县| 阳春市| 息烽县| 拉萨市|