程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 分享一個實用的String的工具類

分享一個實用的String的工具類

編輯:關於JAVA

在編寫J2ME程序時,我們嘗嘗要操作字符串,而原本在J2SE裡面提供了很多String的操作方法,在J2ME裡面是沒有的,這些方法我們得自己手動去寫。我整理了一下我常用的字符串操作方法:

1.URLEncode(String url)方,對字符串的特殊字符進行編碼,這個方法用的非常平凡,我們的HttpConnection請求必須要用到這個方法。

2.split(String s, int chr),這個方法用於分割字符串,返回一個字符串數組,當某些數據以特定的字符做間隔時,我們取出數據嘗嘗要用到這個方法。

3.replaceAll(String from, String to, String source),這個方法是用來替換字符串中的子串的,比如:replaceAll("aaa","","aaabbbcccaaa")把字符串"aaabbbccc"中的所有"aaa"替換成空字符串,結果就是"bbbccc"。

4.StringFilter(String str),這個方法是用來過濾某些字符的。

/*
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
package test;
import java.util.Vector;
/**
  *
  * @author Administrator
  */
public class StringUtil {
     /**
      * URLEncode對特殊字符進行編碼
      * @param url
      * @return
      */
     public static String URLEncode(String url) {
         StringBuffer buf = new StringBuffer();
         for (int i = 0; i < url.length(); i++) {
             switch (url.charAt(i)) {
                 case ' ':
                     buf.append("%20");
                     break;
                 case '+':
                     buf.append("%2b");
                     break;
                 case '\'':
                     buf.append("%27");
                     break;
                 case '/':
                     buf.append("%2F");
                     break;
                 case '.':
                     buf.append("%2E");
                     break;
                 case '<':
                     buf.append("%3C");
                     break;
                 case '>':
                     buf.append("%3E");
                     break;
                 case '#':
                     buf.append("%23");
                     break;
                 case '%':
                     buf.append("%25");
                     break;
                 case '&':
                     buf.append("%26");
                     break;
                 case '{':
                     buf.append("%7B");
                     break;
                 case '}':
                     buf.append("%7D");
                     break;
                 case '\\':
                     buf.append("%5C");
                     break;
                 case '^':
                     buf.append("%5E");
                     break;
                 case '~':
                     buf.append("%73");
                     break;
                 case '[':
                     buf.append("%5B");
                     break;
                 case ']':
                     buf.append("%5D");
                     break;
                 default:
                     buf.append(url.charAt(i));
                     break;
             }
         }
         return buf.toString();
     }
     /**
      * 把String以一個char為分割點,拆分成String數組
      * @param s
      * @param chr
      * @return
      */
     public static String[] split(String s, int chr) {
         Vector res = new Vector();
         int curr;
         int prev = 0;
         while ((curr = s.indexOf(chr, prev)) >= 0) {
             res.addElement(s.substring(prev, curr));
             prev = curr + 1;
         }
         res.addElement(s.substring(prev));
         String[] splitted = new String[res.size()];
         res.copyInto(splitted);
         return splitted;
     }
     /**
      * 字符串替換
      * @param from
      *          字符串中要被替換的子串
      * @param to
      *         替換子串的字符串
      * @param source
      *          被操作的字符串
      * @return
      */
     public static String replaceAll(String from, String to, String source) {
         if (source == null || from == null || to == null) {
             return null;
         }
         StringBuffer bf = new StringBuffer();
         int index = -1;
         while ((index = source.indexOf(from)) != -1) {
             bf.append(source.substring(0, index) + to);
             source = source.substring(index + from.length());
             index = -1;
         }
         bf.append(source);
         return bf.toString();
     }
     /**
      * 字符串過濾
      *          過濾掉諸如<html>這樣的標簽,獲取其中的文本。
      *          例如 str = <html>文本區域</html>,傳的時候傳一個節點過來(一對封閉標簽)
      * @param str
      * @return
      */
     public static String StringFilter(String str) {
         String now = str;
         int start = 0;
         int end = 0;
         for (int i = 0; i < now.length(); i++) {
             //'\u003C','\u003E' = <>
             if (now.charAt(i) == '\u003C') {
                 start = i;
             }
             if (now.charAt(i) == '\u003E') {
                 end = i;
             }
             if (start != -1 && end != -1) {
                 String sub = now.substring(start, end+1);
                 str = StringUtil.replaceAll(sub, "", str);
                 start = 0;
                 end = 0;
             }
         }
         return str;
     }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved