split()办法详解
1.split()次要是用于对一个字符串进行宰割成多个字符串数组。规范模式为String [] strings = str.split("");
2.split()办法中括号中的参数能够为一个也能够为多个,每个参数之间用|隔开。并且每个参数之间要紧挨着|。
如:String [] strings = string.split(" |,|\\?");这里有三个参数:空格、逗号、问号。
3.像?.(点)((正括弧))(反括弧)*(星号)|(竖线)等特殊符号都要在其后面加上\。
4.str.split("");应用默认的状况下,split()办法对每个字符进行宰割。
5.当遇到间断的分隔符的时候
String s = "a,b,###c"String[] ss = s.split(",|#");system.out.println(ss.length);打印的后果是:6
ss = {{"a"},{"b"},{""},{""},{""},{"c"}};
为什么会呈现3个空字符串呢?因为split当遇到分隔符的时候,就始终读取下一个字符直到遇到不是分隔符的字符为止。
这里当遇到b前面的“,”的时候,会接着读取前面的3个“#”晓得遇到c为止。它会把第一个“,”去掉,而后用三个“”去代替3个“#”。
留神:这里在程序中要把ss字符串数组中的“”去掉不能用==来判断而要用equals()来判断。因为这里的字符串数组是在运行时产生的,他寄存在堆区,不是在常量池中。
6.
System.out.println("cd:ef::".split(":").length);//开端分隔符全副疏忽
System.out.println("cd:ef::".split(":",-1).length);//不疏忽任何一个分隔符
System.out.println(StringUtils.split("cd:ef::",":").length);//最后面的和开端的分隔符全副都疏忽,apache commons
System.out.println(StringUtils.splitPreserveAllTokens("cd:ef::",":").length);//不疏忽任何一个分隔符 apache commons