您的位置:首页 > 职场人生

【Java面试题】17 如何把一个逗号分隔的字符串转换为数组? 关于String类中split方法的使用,超级详细!!!

2017-03-23 11:12 1011 查看

split 方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

stringObj.split([separator],[limit])
参数:stringObj   必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
separator 可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽

略该选项,返回包含整个字符串的单一元素数组。 limit可选项。该值用来限制返回数组中的元素个数

说明:split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。separator 不作为任何数组元素的部分返回。

split 的实现直接调用的 matcher 类的 split 的方法。“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义"\\."

如果用竖线“|”分隔的话,将出现不可得到的结果,必须改为“\\|”  

,+ * 不是有效的模式匹配规则表达式,用"//*"        "//+"转义后即可得到正确的结果。

实例:

public class StrSplit2 {
public static void main(String[] args) {
String orgStr = "a,b,c,d,e,f";
String[] result1 = orgStr.split(",");
String[] result2 = orgStr.split(",", 4);

for (int a = 0; a < result1.length; a++) {
System.out.print(result1[a] + "\t");
}
System.out.println();
for (int a = 0; a < result2.length; a++) {
System.out.print(result2[a] + "\t");
}

System.out.println();
String[] aa = "aaa|bbb|ccc".split("\\|"); // 这样才能得到正确的结果
for (int i = 0; i < aa.length; i++) {
System.out.println(aa[i]);
}

System.out.println();
String[] bb = "aaaa*bbbb*cccc".split("\\*"); // 这样才能得到正确的结果
for (int i = 0; i < bb.length; i++) {
System.out.println(bb[i]);
}

String[] cc = "acount=? and uu =? or n=?".split("and|or"); // 这样才能得到正确的结果
for (int i = 0; i < cc.length; i++) {
System.out.println(cc[i]);
}

String[] dd = "aaa\\bbb\\bccc".split("\\\\");
for (int i = 0; i < dd.length; i++) {
System.out.println(dd[i]);
}

System.out.println();
String s = new String("01:大汽车");
String a[] = s.split(":");
System.out.println(a[0]);
System.out.println(a[1]);

System.out.println();

String str = "1one123two456obc";
String[] strs2 = str.split("o");
for (int i = 0; i < strs2.length; i++)
System.out.println("strs2[" + i + "] = " + strs2[i]);
}
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: