Java String的split方法总结
原创 夜雨落花 最后发布于2019-03-01 17:42:28 阅读数 1549 已收藏
展开
String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组。
1、一般用法(默认第一个分隔符前和最后一个分割符后都是有值的)
用一般的字符,例如@或,等符号做分隔符时:
String address="上海@上海市@闵行区@吴中路";
String[] splitAddr=address.split("@");
System.out.println(splitAddr [0]+splitAddr [1]+splitAddr [2]+splitAddr [3]);
2、需要转义的分隔符
当使用* ^ : | . \等6个符号做分隔符时,上述6个符号转义字符,必须得加"\\",即split(“\\^”)等。第二个“\”是用来给这6种符号转义,第一个“\”是用来给第二个“\”转义。
String address="上海*上海市*闵行区*吴中路";
String[] splitAddr=address.split("\\*");
System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]);
其中有个更特殊的,就是“\”。如果字符串中想要使用"\",就应该使用"\\"进行转义。也就是说,对于"a\b",应该写成"a\\b",而如果想要用split方法针对"\"进行拆分,应该使用"a\\b".split("\\\\")。
3、多个符号作为分隔符:
可以用“|”字符作为连字符,把多个分隔符分隔的内容都区分开:
String address="上海^上海市@闵行区#吴中路";
String[] splitAddr=address.split("\\^|@|#");
System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]);
4、空值的存储
如果split(String s)函数产生了空值,那么不会存到数组中。可以通过使用它的重载函数split(";",-1)实现空值的保存。这里的“;”只是作为分隔符的一个例子。注意:这里的空值是只null,空格不是空值,如
//字符串分割时,默认第一个(此处为“,”)前是有值的,但只会计算最后一个不为null的值。
//即前面的null会计入数组中,最后的连续null值都不计。
//可以使用split(",",-1)来获得包含全部null的数组
String string=",,1,2,3,,,";
String[] splitArr = string.split(",");
System.out.println(splitArr.length);//5
String string=",,1,2,3, ,,";
String[] splitArr = string.split(",");
System.out.println(splitArr.length);//6
String string=",,1,2,3,,, ";
String[] splitArr = string.split(",");
System.out.println(splitArr.length);//8
String string=",,1,2,3,,,";
String[] splitArr = string.split(",",-1);
System.out.println(splitArr.length);//8
————————————————
原文链接:https://blog.csdn.net/weixin_38569499/article/details/87947913