关于java中String方法split的理解
2013-10-24 15:02
381 查看
昨天用split,有点疑问,于是就好好研究了下,先看以下代码:
这里要注意的一个点,分隔符为“.”(无输出),“|”(不能得到正确结果)转义字符时,“*”,“+”时出错抛出异常,都必须在前面加必须得加"//",如split(//|);
这里n1的长度7,n2的长度是5,n3的长度也是5.这个时候就需要看JDK源码了。
public
String[] split(String regex, int limit)
limit 参数控制模式应用的次数,因此影响结果数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于
n,而且数组的最后项将包含超出最后匹配的定界符的所有输入。如果 n 为非正,则模式将被应用尽可能多的次数,而且数组可以是任意长度。如果
n 为零,则模式将被应用尽可能多的次数,数组可有任何长度,并且结尾空字符串将被丢弃。
而public
String[] split(String regex) 是吧limit是默认为0 了。
现在大家知道了会把空字符串丢弃了,所以长度为5!!
String str1 = "50|101004|303110345112305|ZF230008|00||"; String str2 = "50|101004|303110345112305|ZF230008|00"; String str3 = "50|101004|303110345112305|ZF230008|00|"; String[] n1 = str1.split("\\|",-1); String[] n2 = str2.split("\\|"); String[] n3 = str3.split("\\|"); System.out.println(n1.length); System.out.println(n2.length); System.out.println(n3.length);
这里要注意的一个点,分隔符为“.”(无输出),“|”(不能得到正确结果)转义字符时,“*”,“+”时出错抛出异常,都必须在前面加必须得加"//",如split(//|);
这里n1的长度7,n2的长度是5,n3的长度也是5.这个时候就需要看JDK源码了。
public
String[] split(String regex, int limit)
limit 参数控制模式应用的次数,因此影响结果数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于
n,而且数组的最后项将包含超出最后匹配的定界符的所有输入。如果 n 为非正,则模式将被应用尽可能多的次数,而且数组可以是任意长度。如果
n 为零,则模式将被应用尽可能多的次数,数组可有任何长度,并且结尾空字符串将被丢弃。
而public
String[] split(String regex) 是吧limit是默认为0 了。
现在大家知道了会把空字符串丢弃了,所以长度为5!!
相关文章推荐
- 关于java String的intern()方法的理解
- java中关于String的split(String regex, int limit) 方法
- 关于JAVA string.split()方法。
- 关于Java的String.split方法的具体使用方法
- 关于java中String类型的split方法问题
- java中String.split()方法疑问记录
- java中String的split()方法
- JAVA String.split()方法
- JAVA基础 - 关于String字符串的一些方法
- java关于String字符串操作的方法
- Java中分割字符串的方法--String.split()
- 关于java的split方法的转义用法
- JAVA中关于set()和get()方法的理解及使用
- 关于Java中String类的split(String regex)方法的一点困惑
- 关于String.split()方法
- 关于java方法多线程访问自己的理解
- JAVA String.split()方法
- java中string对象中的split方法的使用
- java实现String的split方法
- guava Splitter 与java 内置的string的split 方法的区别