共计 935 个字符,预计需要花费 3 分钟才能阅读完成。
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