在Java中“java.lang.String”包中提供了很多处理字符串的方法,其中包括字符串的分割处理,split()方法。
split()方法是根据某个字符,将某一特定的字符串分割成为一个String数组。便于使用,经常用于处理一组复选框的值。
但是,如果string字符串传过来的值为“1,2,3,4,5,”或者前台传过来的是"12345",如果直接用split(“,”)方法进行分割会不会报错?
所以做了一组实验。
package com.bonc.ioc.calm;
public class testStringMothed {
/**
* @param args
*/
public static void main(String[] args) {
String aa = "1,2,3,4,5,";
String bb = "12345";
String cc = "1,2,3,4,5";
String dd = ",1,2,3,4,5";
String[] aa2 = aa.split(",");
String[] bb2 = bb.split(",");
String[] cc2 = cc.split(",");
String[] dd2 = dd.split(",");
for (int i = 0; i < aa2.length; i++) {
System.out.println("aa2的第"+i+"个是:"+aa2[i]);
}
System.out.println();
for (int j = 0; j < bb2.length; j++) {
System.out.println("bb2的第"+j+"个是:"+bb2[j]);
}
System.out.println();
for (int z = 0; z < cc2.length; z++) {
System.out.println("cc2的第"+z+"个是:"+cc2[z]);
}
System.out.println();
for (int x = 0; x < dd2.length; x++) {
System.out.println("dd2的第"+x+"个是:"+dd2[x]);
}
}
}
运行结果为:
所以,使用String类的split()方法时,当字符串中不包含所使用的截取符时,也不会报错。同时尽量在末位加截取符,而不要再开头加,不然后有空值得出现。
唯一需要注意的是,相关特殊字符作为截取符的时候需要转意。在字符前加“\\”即可
split(".")-----------------split("\\.")
split("*")-----------------split("\\*")
split("@")-----------------split("\\@")
split("#")-----------------split("\\#")