`
huoyj
  • 浏览: 87997 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java String类的split方法

    博客分类:
  • J2SE
 
阅读更多
	String str = "==he=llo==";
		 String[] p = str.split("=");
		 System.out.println(p.length);
		 for (String s : p) {
		 System.out.println(s);
		 }

这个第一个字符是空,看了看源代码,调用了java.util.regex.Pattern类的split方法
public String[] split(CharSequence input, int limit) {
        int index = 0;
        boolean matchLimited = limit > 0;
        ArrayList<String> matchList = new ArrayList<String>();
        Matcher m = matcher(input);

        // Add segments before each match found
        while(m.find()) {
            if (!matchLimited || matchList.size() < limit - 1) {
                String match = input.subSequence(index, m.start()).toString();
                matchList.add(match);
                index = m.end();
            } else if (matchList.size() == limit - 1) { // last one
                String match = input.subSequence(index,
                                                 input.length()).toString();
                matchList.add(match);
                index = m.end();
            }
        }

        // If no match was found, return this
        if (index == 0)
            return new String[] {input.toString()};

        // Add remaining segment
        if (!matchLimited || matchList.size() < limit)
            matchList.add(input.subSequence(index, input.length()).toString());

        // Construct result
        int resultSize = matchList.size();
        if (limit == 0)    //此处开始把list中从last开始往左直到第一个非空的右边的空串扔掉了
            while (resultSize > 0 && matchList.get(resultSize-1).equals(""))
                resultSize--;
        String[] result = new String[resultSize];
        return matchList.subList(0, resultSize).toArray(result);
    }

对前面的==和后面的==处理的方式不一样,最终的输出结果为:
引用
4


he
llo

这是不是个bug,他把后面==分割出来的空串忽略了,前面的确没有。
分享到:
评论

相关推荐

    String类的intern、split方法

    java中String类的intern、split方法的详细讲解。

    java的String[] split 示例

    java的String[] split 示例

    浅谈java String.split丢失结尾空字符串的问题

    下面小编就为大家带来一篇浅谈java String.split丢失结尾空字符串的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java中String.split()用法小结

    主要介绍了Java中String.split()用法小结的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    Java字符串split使用方法代码实例

    主要介绍了Java字符串split使用方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    30个java工具类

    [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中计算任意两...[工具类] 框架StringUtil.java [工具类] 时间Time.java [工具类] 时间工具TimeUtil.java [工具类] 连数据库ConnectDB.java

    StringAPI.java

    Java String 类型 API 测试代码 1.String和char[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) String类 String replace(char oldChar, ...

    【强2】30个java工具类

    使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:...[工具类] 框架StringUtil.java [工具类] 时间Time.java [工具类] 时间工具TimeUtil.java [工具类] 连数据库ConnectDB.java

    java日期计算 String date

    用于String类型的日期计算 String date1 = "2018-09-18";... String[] d1 = date1.split("-"); String[] d2 = date2.split("-"); int[] a1={0,0,0}; int[] a2={0,0,0}; int[] rs={0,0,0};

    c++string类的实现

    2)string类经常用到find find_first_of find_first_not_of find_last_of find_last_not_of substr replace等,以及联合使用来达到java中的split和trim 3) 有些函数返回的是MyString& 、Char& 等(引用),MyString、...

    Java正则表达式之split()方法实例详解

    主要介绍了Java正则表达式之split()方法,结合实例形式较为详细的分析了split方法的功能、使用方法及相关注意事项,需要的朋友可以参考下

    java字符串转数组.docx

    在Java中,将字符串转换为数组可以...使用String类的split()方法: 这个方法将字符串根据指定的分隔符分割成字符串数组。 示例:String[] stringArray = str.split(","); 使用java.util.Arrays类的copyOfRange()方法:

    完整版Java全套入门培训课件 Java基础 06-集合(共24页).pptx

    String类部分方法 char charAt(int index) int length() char[] toCharArray(); int indexOf(String str); boolean endsWith(String str); String[] split(String reg); String substring(int index); String(char[]...

    javascript String split方法误操作

    split定义和用法 split() 方法用于把一个字符串分割成字符串数组。 语法 stringObject.split(separator, howmany)参数 描述 separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 howmany 可...

    详解C++的String类的字符串分割实现

    在Java下直接用String的split函数就可以了。c++下String没有直接提供这个函数,需要自己写。 网上给出的解决方案是这里的三种方法。但我是通过JNI访问的,在里面用这些vector可能不中,自己封装了个,仅供参考: ...

    浅析Java中Split函数的用法技巧

    在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。以下我就为大家介绍,需要的朋友可以参考下

    String 优化

    java String 优化,提高性能

    string类的常用方法.zip

    但是,你可以使用 str 类的方法来创建新的字符串或对字符串进行操作。 1. capitalize() 将字符串的首字母大写,其余字母小写。 2. lower() 和 upper() 将字符串转换为小写或大写。 3. strip(), lstrip(), ...

    代码分析c++中string类

    (3)string类经常用到find find_first_of find_first_not_of find_last_of find_last_not_of substr replace等,以及联合使用来达到java中的split和trim (4) 使用friend 仅仅是在类中进行声明的非内部 却可以访问...

    Android中Split()字符串分割特殊用法案例详解

    Java:分割字符串不能写成split(“$”)//$为要分割的字符 Android:分割字符串需要加上中括号split(“[$]”)//$为要分割的字符 2.特殊用法–当split()分割字符串遇上特殊符号 案例分析 String str = abc|dfg; ...

Global site tag (gtag.js) - Google Analytics