{轉}Java 字符串分割三種方法


http://www.chenwg.com/java/java-%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%88%86%E5%89%B2%E4%B8%89%E7%A7%8D%E6%96%B9%E6%B3%95.html

最近在項目中遇到一個小問題,一個字符串分割成一個數組,類似String str=”aaa,bbb,ccc”; 然后以”,”為分割符,將其分割成一個數組,用什么方法去實現呢?

第一種方法:

可能一下子就會想到使用split()方法,用split()方法實現是最方便的,但是它的效率比較低

第二種方法:

使用效率較高的StringTokenizer類分割字符串,StringTokenizer類是JDK中提供的專門用來處理字符串分割子串的工具類。它的構造函數如下:

public StringTokenizer(String str,String delim)

str是要分割處理的字符串,delim是分割符號,當一個StringTokenizer對象生成后,通過它的nextToken()方法便可以得到下一個分割的字符串,再通過hasMoreTokens()方法可以知道是否有更多的子字符串需要處理。這種方法的效率比第一種高。

第三種方法:

使用String的兩個方法—indexOf()和subString(),subString()是采用了時間換取空間技術,因此它的執行效率相對會很快,只要處理好內存溢出問題,但可大膽使用。而indexOf()函數是一個執行速度非常快的方法,

原型如下:

public int indexOf(int ch)   它返回指定字符在String對象的位置。如下:

舉例:
"ab&&2"以&分割成"ab" "2"


String tmp = "ab&&2";
String splitStr = null;
int j = tmp.indexOf("&");        // 找分隔符的位置
splitStr = tmp.substring(0, j);    // 找到分隔符,截取子字符串
tmp = tmp.substring(j + 2);      // 剩下需要處理的字符串
System.out.println(splitStr);
System.out.println(tmp);

ab
2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM