`
huoyj
  • 浏览: 89388 次
  • 性别: 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方法

    String类的intern、split方法 String 类的 intern 方法是一个本地方法,定义如下:public native String intern();该方法返回一个字符串对象的内部化引用,由 String 类维护一个初始为空的字符串的对象池,当 ...

    java中的String类常用方法解析(一)

    以上就是`String`类的一些常见方法,理解并熟练使用它们对于提升Java编程效率至关重要。在实际开发中,开发者通常会结合这些方法来处理字符串,实现各种文本操作。通过阅读和分析`TestString.java`文件,我们可以...

    java String类常用方法练习小结

    【Java String类常用方法详解与实战】 在Java编程语言中,`String`类是一个非常重要的类,它代表不可变的字符序列。所有的字符串字面值(例如:"abc")都是`String`类的实例。本篇文章将深入探讨`String`类的一些...

    java的String[] split 示例

    在Java编程语言中,`String`类提供了许多用于操作字符串的方法,其中之一便是`split`方法。这个方法在处理文本数据时极为有用,特别是在需要根据特定的分隔符将字符串分割成多个子串的情况下。下面,我们将深入探讨`...

    String.split()方法使用总结

    在Java编程语言中,`String.split()`方法是一个非常实用且强大的工具,用于将字符串分割成字符串数组,基于正则表达式或指定的分隔符。这个方法为处理文本数据提供了极大的灵活性,尤其在解析CSV文件、配置文件或者...

    介绍java中String类的方法

    Java中的String类是编程中非常基础且重要的一个类,它代表不可变的字符序列,即一旦创建...掌握这些基本的String类知识和方法对于Java编程至关重要,它们在日常开发中被广泛应用,理解并熟练运用能提高代码质量和效率。

    Java的 String 类常用方法大全

    Java 中的 String 类提供了 split 方法来拆分字符串。 1. split(String str) 方法 split 方法将字符串按照指定的分隔符拆分成多个子字符串。如: String string1 = "abc1def1ghi1asd12345"; String result1[] = ...

    Java字符串分隔方法split实践

    `split()`方法位于`java.lang.String`类中,它的基本语法如下: ```java public String[] split(String regex) ``` 这里的`regex`参数是一个正则表达式,用于定义分隔字符串的规则。正则表达式是一种强大的文本...

    java中的split的用法

    ### Java中的split方法详解 #### 一、引言 在Java编程中,字符串处理是非常常见的需求之一。`String`类提供了多种方法来处理字符串,其中`split`方法因其灵活性和强大的分割功能而被广泛使用。本文将深入探讨`...

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

    在Java编程语言中,`String`类提供了许多实用的方法,其中之一就是`split()`。这个方法用于根据指定的分隔符将字符串分割成多个子字符串,并返回一个字符串数组。然而,有时候开发者可能会遇到一个问题,即使用`...

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

    Java 中的字符串 split 方法是 String 类中的一个方法,名为 `split()`。该方法将一个字符串拆分成多个子字符串,并将其存储在一个字符串数组中。 Java 字符串 Split 语法 Java 字符串 split 语法如下所示: ```...

    String类方法使用例子

    在Java编程语言中,`String` 类是处理字符串的核心类,它包含了大量的方法,使得对字符串的操作变得简单而高效。本篇文章将详细讲解`String`类的一些常用方法,并通过具体的例子来展示它们的用法。 1. **创建String...

    Java中String类的方法及说明.doc

    以下是对标题和描述中提到的Java String类方法的详细说明: 1. **构造函数**: - `String(byte[] bytes)`: 这个构造函数用于创建一个新字符串,该字符串包含给定字节数组表示的字符。字节按照平台的默认字符集解码...

    java String 数据结构

    `String`类还提供了比较和分割字符串的方法,如`equals()`、`compareTo()`、`startsWith()`、`endsWith()`以及`split()`等。这些方法对于字符串的处理非常实用。 对于初学者,理解`String`的不可变性是很重要的。这...

    面试题:Java String类常见操作和用法

    Java String类是Java编程语言中的核心类,它用于表示和操作字符串。由于字符串在编程中极为常见,理解和熟练掌握String类的用法至关重要。在面试中,Java String类的操作和用法经常成为考察的重点。 首先,Java ...

    Java中Split的用法及注意

    Java 中的 Split 方法是通过正则表达式来拆分字符串的,它可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回。该方法的语法为 `stringObj.split(regex, [limit])`,其中 `stringObj` 是要被分解的字符...

    JAVA【第5章:面向对象基础】_String类的常用方法.rar

    在Java编程语言中,面向对象基础是学习Java的基石,而`String`类则是最常用的类之一,几乎在每一个程序中都会见到它的身影。本章节将深入探讨`String`类的常用方法,帮助你更好地理解和运用这个核心组件。 `String`...

    Java中String类的方法及说明.pdf

    总之,Java中的String类提供了丰富的构造函数和方法,使得我们可以方便地创建、操作和比较字符串。理解并熟练运用这些方法对于进行Java编程,特别是在处理文本信息时,是非常关键的。在准备考试或实际工作中,掌握...

    Java 中 String 类的常用方法

    Java中的String类提供了丰富的字符串操作方法,这些方法覆盖了字符串的创建、修改、比较、查找以及格式化等多个方面,极大地方便了Java程序中对字符串的处理。 1. `charAt(int index)`方法用于返回字符串中指定索引...

Global site tag (gtag.js) - Google Analytics