`

string split 空字符串问题

    博客分类:
  • J2EE
 
阅读更多

 

String str="123,123,,123,,";

 

System.out.println(str.split(",").length);// 这时结果会是4, 最后的2个因为是空白没有算

 

System.out.println(str.split(",",-1).length);//这时会是6, 是我想要的

 

为什么呢, 看下源码

 

最后执行到的是

 

    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)

            while (resultSize > 0 && matchList.get(resultSize-1).equals(""))

                resultSize--;

        String[] result = new String[resultSize];

        return matchList.subList(0, resultSize).toArray(result);

    }

 

 

 

这里

 

        if (limit == 0)

            while (resultSize > 0 && matchList.get(resultSize-1).equals(""))

                resultSize--;

 

这里把后面的空白字符串减去了。

 

 

 

 

0
1
分享到:
评论

相关推荐

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

    split()分割字符串 1.不同环境下的区分 Java:分割字符串不能写成split(“$”)//$为要分割的字符 Android:分割字符串需要加上中括号split(“[$]”)//$为要分割的字符 2.特殊用法–当split()分割字符串遇上特殊...

    asp字符串处理函数大全

    Split Split(string1,delimiter[,count[,start]]) 将字符串根据delimiter拆分成一维数组,其中delimiter用于标识子字符串界限。如果省略,使用空格("")作为分隔符。count返回的子字符串数目,-1指示返回所有子字符串...

    vb.net字符串转换

    Split Split(string1,delimiter[, count[, start]]) 将字符串根据delimiter拆分成一维数组,其中delimiter用于标识子字符串界限。如果省略,使用空格("")作为分隔符。 count 返回的子字符串数目,-1 指示返回所有子...

    使用一个字符串分割另一个字符串

    * 使用一个字符串分割另一个字符串 * * @param delimiter 边界上的分隔字符 * @param haystack 输入的字符串 * @param out 输出的字符串指针 * @return 分割成了多少个成员 */ int explode(char *delimiter, ...

    pb分割字符串,自己写的split()方法

    这是我遇到的问题,然后发现pb里没有split方法,就自己写了一个,应该还能算是简单而实用吧

    ABAP常用字符串操作

    1. 字符串连接 2.字符串分隔, split 一个 string 的部分到一个内表或一系列的变量

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

    详解C++的String类的字符串分割实现 功能需求,输入一个字符串“1-2-3”切割出“1”、“2”、“3”。在Java下直接用String的split函数就可以了。c++下String没有直接提供这个函数,需要自己写。 网上给出的解决方案...

    C++常用字符串分割方法实例汇总

    我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数...

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

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

    SQL Server 字符串截取功能创建(Split)

    SQLServer数据库中创建字符串截取功能(Split),调用方法: Split(string,str)

    C/C++的split分隔字符串

    标准C/C++编写的字符串分隔函数,可以设置分隔字符串,解出字符串存到vector里面。有需要的可以下载

    delphi7分割字符串

    delphi7分割字符串

    C#中按字符串截取长字符串实例

    按字符串截取,使用的是正则表达式,简单的两行代码,就解决很多问题。 如下 代码如下:string content =@”长字符创”;  Regex regex = new Regex(@”按照截断的字符串”);  string[] result = regex.Split...

    public static String[] split(String s, String regex)

    单字符的字符串(长度1),功能如下:split(“ab#12#453”, “#”) 返回带5个元素的数组:ab, #, 12, #, 453 带中括号的字符串(长度&gt;2),功能如下:split(“a?b?gf#e”, “[?#]”) 返回带7个元素的数组:a, ?, b, ...

    String_Split.scl

    西门子1200PLC字符串分割函数,采用SCL语言写,通过“外部源文件”添加到项目中,然后对该文件右键--选择“由源生成块”即生成该函数。

    sql 分割字符串 dbo.Split('',',')

    将字符串按某个固定字符拆分成一个表结构(value,id) eg:1,2,3,3,4 拆分后: value id 1 1 2 2 3 3 3 4 4 5

    db2字符串分隔,函数,过程的使用

    主要记录在工作中,初识db2遇到的一些问题 db2字符串分隔,函数,过程的使用

    c# split分隔字符串使用方法

    代码如下:string str=”aaa|||bbb|||ccc”; string[] sArray=str.Split(new[] { “|||”... 您可能感兴趣的文章:C#中使用Split方法拆分字符串实例C#中使用split分割字符串的几种方法小结C# Split分隔字符串的应用(C#、s

    C#中使用Split方法拆分字符串实例

    C#中有一个字符串拆分函数String.Split(),可以用于将一个字符串,拆分为一个字符串数组。在拆分的时候,需要一个拆分的“分隔符”。这个“分隔符”可以是一个字符,也可以是多个字符组成一个字符串。 先举一个简的...

    字符串处理类

    public static List&lt;string&gt; StringSplit(string source, string keyword) { if (string.IsNullOrEmpty(keyword)) return new List&lt;string&gt; {source}; var list = new List&lt;string&gt;(source.Split(new[] {...

Global site tag (gtag.js) - Google Analytics