在字符串处理过程中,我们经常遇到要把一个字符串转出字符数组,使用的split函数,下面就该函数进行简单说明。
split 方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([separator],[limit])
参数:
stringObj
separator 可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽
略该选项,返回包含整个字符串的单一元素数组。 limit可选项。该值用来限制返回数组中的元素个数。
说明:split 方法的结果是一个字符串数组,在 stingObj中每个出现 separator 的位置都要进行分解。separator
不作为任何数组元素的部分返回。
split 的实现直接调用的 matcher 类的 split 的方法。“ .”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义"\\."
如果用竖线“|”分隔的话,将出现不可得到的结果,必须改为"\\|"
,+ * 不是有效的模式匹配规则表达式,用"\\*"和
1."|"分隔符
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "abcdef|ghijk|lmno|pqrst|";
String[] array = str.split("|"); //用"|"作为分隔符
System.out.println("size="+array.length);
for(String st: array){
System.out.print(st+",");
}
}
得到的结果如下:
size=25
,a,b,c,d,e,f,|,g,h,i,j,k,|,l,m,n,o,|,p,q,r,s,t,|,
这个结果并非我希望的结果。
需要修改一下:
String[] array = str.split("\\|");
得到的结果如下:
size=4
abcdef,ghijk,lmno,pqrst,
2.","分割符
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "abcdef,ghijk,lmno,pqrst,,,";
String[] array = str.split(",");
System.out.println("size="+array.length);
for(String st: array){
System.out.print(st+",");
}
}
得到的结果如下:
size=4
abcdef,ghijk,lmno,pqrst,
如果想得到后面几个空格的话,需要修改一下:
String[] array = str.split(",",-1);
得到的结果如下:
size=7
abcdef,ghijk,lmno,pqrst,,,,
3."."分隔符
<span style="color:#000000;">String value = "192.168.128.33";
String[] names = value.split("\\.");
for (int i = 0; i < names.length; i++)
System.out.println(names[i]);</span>
得到的结果如下:
192
168
128
33
4.":"分隔符
<span style="color:#000000;">String s = new String("01:大汽车:02:小汽车");
String a[] = s.split(":");
for(int i=0;i<a.length;i++)
System.out.println(a[i]);</span>
得到的结果如下:
01
大汽车
02
小汽车
5.一般字母分割
<span style="color:#000000;">String str = "1one123two456obc";
String[] strs2 = str.split("o");
for(int i = 0; i < strs2.length; i++)
System.out.println("strs2["+i+"] = "+strs2[i]);</span>
得到的
结果如下:
strs2[0] = 1
strs2[1] = ne123tw
strs2[2] = 456
strs2[3] = bc