android學習筆記24————–字符串問題(不斷更新)

一、字符串分割

在java.lang包中也有String.split()方法,與.net的類似,都是返回是一個字符型數組,但使用過程中還有一些小技巧。
如執行:"2|33|4".split("|")

出來的結果是:

""

2

|

3

3

|

4

奇怪吧,不過註意看一下API說明還是知道原因的.

 

java.lang.string.split
split 方法
將一個字符串分割為子字符串,然後將結果作為字符串數組返回。
stringObj.split([separator,[limit]])
參數
stringObj
必選項。要被分解的 String 對象或文字。該對象不會被 split 方法修改。
separator
可選項。字符串或 正則表達式對象,它標識瞭分隔字符串時使用的是一個還是多個字符。如果忽略該選項,返回包含整個字符串的單一元素數組。
limit
可選項。該值用來限制返回數組中的元素個數。

說明
split 方法的結果是一個字符串數組,在 stingObj 中每個出現 separator 的位置都要進行分解

 

所以正常的寫法是這樣的:

1、如果用“.”作為分隔的話,必須是如下寫法:String.split("//."),這樣才能正確的分隔開,不能用String.split(".");
2、如果用“|”作為分隔的話,必須是如下寫法:String.split("//|"),這樣才能正確的分隔開,不能用String.split("|");
“.”和“|”都是轉義字符,必須得加"//";
3、如果在一個字符串中有多個分隔符,可以用“|”作為連字符,比如:“a=1 and b =2 or c=3”,把三個都分隔出來,可以用String.split("and|or");

 

例如:

aaa bbb ccc 截取後 "aaa""bbb""ccc"三個字符串
可以:
 String temps ="aaa bbb ccc"; 

 String arrays[] = temps.split(" ");

 for(int i=0;i<arrays.length;i++)

 System.out.print(arrays[i]+" ");

 

 

二、字符串替換

String temp = "22235aa33ee3399cceee0088kk";
                System.out.println(temp.replaceAll("[a-zA-Z]+",""));
以上的是把字母去掉

System.out.println(temp.replaceAll("[^a-zA-Z0-9]+",""));

隻保留字母和數字,將其他字符去掉

 

摘自 奔跑的蝸牛

發佈留言