`

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
分享到:
评论

相关推荐

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

    此自定义`split()`方法的核心思想是通过遍历输入的字符串,查找指定的分隔符,并根据分隔符的位置将原始字符串拆分为多个子字符串。这些子字符串将被存储在一个数组中并最终返回。 #### 参数说明 该方法接受两个...

    vbscript Split函数用法详解(字符串转数组函数)

    如果`expression`是一个空字符串(""), Split函数会返回一个空数组。 - `delimiter`:可选参数,用于定义子字符串之间的边界。默认情况下,如果省略此参数,Split函数会使用空格字符作为分隔符。如果`delimiter`是一...

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

    然而,有时候开发者可能会遇到一个问题,即使用`split()`时,结尾的空字符串可能会丢失。这个问题在标题和描述中已经明确指出,现在我们将深入探讨这个问题及其解决方案。 首先,让我们看一个简单的例子: ```java ...

    用string拆分字符串

    Java中,我们使用`String`类的`split()`方法来拆分字符串。这个方法接受一个正则表达式作为参数,例如: ```java String str = "apple|banana|grape"; String[] fruits = str.split("|"); for (String fruit : ...

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

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

    Java字符串分隔方法split实践

    字符串处理是许多程序的核心部分,而`split()`方法就是处理字符串的一个关键工具。这个方法允许我们根据特定的分隔符将一个字符串分割成多个子字符串,这对于数据解析、格式转换等场景非常有用。在本文中,我们将...

    labview字符串拆分到数组 支持中文1

    在LabVIEW中处理字符串是一项常见的任务,尤其是将一个字符串拆分成多个子字符串,这通常涉及到字符串的分割操作。本篇将详细介绍如何在LabVIEW中实现“字符串拆分到数组”并支持中文字符。 一、字符串拆分的基本...

    Arduino 分割字符串库,strFenGe.rar

    6. **优化和替代方案**:对于内存敏感的项目,可以考虑使用字符数组(C 风格字符串)和指针,或者利用 `split()` 函数的返回值,避免创建过多的 `String` 对象。另外,还可以使用 `char*` 和 `strtok()` 函数从 C ...

    delphi7分割字符串

    5. **忽略空字符串**:在分割过程中,可能希望跳过空的子字符串。这通常需要在处理结果时进行检查。 6. **性能优化**:对于大量数据的字符串处理,可以考虑使用`TStringList`或动态数组来存储子字符串,以提高内存...

    VB拆分字符串,分隔字符串

    在这里,`inputString`是你想要拆分的原始字符串,`delimiter`是用于标识子字符串边界的字符或字符串。例如,如果你有一个逗号分隔的字符串,你可以这样拆分: ```vb Dim str As String = "苹果,香蕉,橙子" Dim ...

    JS split() 分割字符串

    在JavaScript中,`split()`函数是一个非常实用的字符串方法,用于将一个字符串分割成多个子字符串,并返回一个字符串数组。这个方法是基于指定的分隔符来切割原始字符串的。在深入探讨`split()`之前,我们需要理解...

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

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

    C#中用Split计算英文字符串中单词个数[收集].pdf

    C#中用Split计算英文字符串中单词个数 在C#中,可以使用Split方法来计算英文字符串中的单词个数。Split方法可以根据指定的字符将字符串拆分成多个子字符串,并返回一个字符串数组。要计算英文字符串中的单词个数,...

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

    在处理字符串时,DB2提供了多种函数和过程,使得对字符串的分隔、提取和操作变得方便高效。以下将详细介绍DB2中用于字符串分隔、函数及过程的使用。 1. 字符串分隔函数: 在DB2中,最常用的字符串分隔函数是`STRIP...

    ABAP常用字符串操作

    ### ABAP常用字符串操作知识点详解 #### 一、字符串连接 在ABAP中,字符串连接是一种常见的操作方式,用于将两个或多个字符串合并成一个新的字符串。实现字符串连接的方法主要是通过`CONCATENATE`语句。 **语法...

    String split函数

    String split函数是 Java 中 String 类的一种常用函数,用于将一个字符串分割为子字符串,并将结果作为字符串数组返回。在实际开发中,String split函数经常被用于数据处理和字符串操作。本文将详细介绍 String ...

    C#实现实体类与字符串互相转换的方法

    在这个例子中,我们利用反射实现了实体类与字符串的互转,这对于处理数据序列化、反序列化或者数据传输等问题非常有用。当然,这只是一个基础的实现,实际应用中可能需要考虑更多因素,例如异常处理、数据验证和性能...

    (c#)字符串转换成字符数组 字符串转换成int 数组

    如果字符串中包含分隔符(如逗号、空格等),可以使用`Split()`方法来分割字符串,并将结果存储在一个字符串数组中。例如: ```csharp string str = "a,b,c,d"; string[] arr = str.Split(','); // 输出结果:a b ...

    C#对各种字符串的操作,及函数使用方法的实例

    `Split`函数用于根据指定的分隔符将字符串分割成数组。在C#中,这通过`Split`方法完成。 ```csharp string myString = "Hello, World!"; string[] parts = myString.Split(','); foreach (string part in parts) { ...

    fortran分割字符串和字符串替换的子程序_Fortran_

    对于处理字符串操作,Fortran提供了多种内置函数,但有时为了实现特定的需求,我们可能需要编写自定义的子程序。本篇将详细介绍如何在Fortran中进行字符串的分割与替换,以帮助你更好地理解和应用这些技术。 1. **...

Global site tag (gtag.js) - Google Analytics