String的split小记

public class SplitDemo {
    public static void main(String[] args) {
        String a = "abcooob";
        String[] as = a.split("o");
        System.out.println(as.length);
    }
}

运行结果是

4
abc            b

因为分割成{“abc”,"","","b"}的值,这个正常理解。

public class SplitDemo {
    public static void main(String[] args) {
        String a = "abcooo";
        String[] as = a.split("o");
        System.out.println(as.length);
        for (String string : as) {
            System.out.print(string+"\t");
        }
    }
}

这个运行结果是:

1
abc   
---------------------------------------------------------

为什么呢?

看api

split

public String[] split(String regex)
  • 根据给定正则表达式的匹配拆分此字符串。

    该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。

    例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:

    Regex 结果
    : { "boo", "and", "foo" }
    o { "b", "", ":and:f" }
    • 参数:
    • regex - 定界正则表达式
    • 返回:
    • 字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的
    • 抛出:
    • PatternSyntaxException - 如果正则表达式的语法无效

----------------------------------------------------------------------------------

结论:split分割所得数组中不包括结尾空字符串。

----------------------------------------------------------------------------------

时间: 2024-10-05 05:58:45

String的split小记的相关文章

[Java]_[初级]_[String的split里的坑]

场景: 1. 有时候需要使用某些字符来作为值的合并存储,比如以@作为分隔符, [email protected]@323232, 用一个属性存储这3个值, 用的时候再拿出来split就可以了. 2. 问题是有时候某个值会缺失,比如第一个值没有的情况, @[email protected]  第2,3个值没有的情况 [email protected]@ ,当然也期望是能返回3个值,只是后边2个值为空字符就行了. 事实上,结果不是这样,即使 2,3个值没有的情况 [email protected]@

String的split()方法探索和大揭秘

其实没打算写这么一篇博文的,但是昨天在逛论坛的时候,发现一帖子,然后我又把帖子的内容在群里发了一通,结果出现了让人惊讶的结果,所以这里简单的给大家分享一下split()方法,免得大伙儿以后还会出现这种基本知识错误! 接着说一下,昨天看到的帖子内容: String[] str1 = ";;;".split(";"); String[] str2 = ";a;;".split(";"); String[] str3 = "

关于String的split方法的一点疑问

今天莫名其妙的又做了一下leetcode上面的第一题,是简单的字符串逆序输出问题.下面是我处理的代码: public String reverseWords(String s) { if(s == null) return new String(""); StringBuffer fir = new StringBuffer(s); if(fir.length() == 0) return new String(""); while(fir.length() !=

Java中String的split()方法的一些需要注意的地方

项目中我用到了字符串的split()方法,为这种方法的方便称赞,可是程序在测试的时候出现的问题折腾了我好久,原来在使用的时候存在着以下几个需要注意的地方. 本来使用split()方法是判断String的数量,结果这么的不靠谱,最后换成了hashset动态添加字符串,然后求hashset.size()的方法得到字符串的个数解决的.... Java代码   public String[] split(String regex, int limit) split函数是用于使用特定的切割符(regex)

String的split()方法的使用注意点

当我们需要对字符串进行切割时,会想到使用String的split()方法,但要想真正达到使用效果,需要注意以下几点: 一个参数时,即方法:public String[] split(String regex): 如果用"."作为分隔,必须用:String.split("\."),这样才能正确的分隔开,不能用String.split(".");. 如果用"|"作为分隔,必须用:String.split("\|"

guava Splitter 与java 内置的string的split 方法有什么区别.

java内置的会忽略空内容,guava Splitter不会忽略.或者可以自由选择的忽略. /** * {@code Splitter}和{@code Joiner} 这两个对于map的相反的操作,在web框架例如spring mvc中用到过. * * 对于get url后面的参数和pos form中前端参数的连接和后端的拆分都有用到.每个框架的处理思维是一样的. * * @author doctor * * @since 2015年3月14日 下午9:00:17 */ ............

lua实现string的split功能

function split(str,sp) local result = {} local i = 0 local j = 0 local num = 1 local pos = 0 while true do i , j = string.find(str,sp,i+1) if i == nil then if num ~=1 then result[num] = string.sub(str,pos,string.len(str)) end break end result[num] =

关于String的split方法

在做剑指offer的时候,有一道替换空格的题,立刻就想到用这个split方法来做,但发现,这个方法会丢掉字符串最后的空格??? 百度后,知道原因,这里直接复制粘贴了: 在使用java中的split按照“\t”,拆分字符串的时候,发现如果最后的几个字段是空,只是用\t分割,是连着的\t的话,就不会被分割,如 “d\tc\te\t\t\t”最后的几个\t就不会被分割,应该是在拆分之前对字符串进行了处理.导致的拆分字段个数错误.查了一下APi,需要在split中添加参数-1,String[] valu

使用String的split遇到的问题

在使用split()进行分割的时候,需要注意特殊字符的转化: split("\\?")问号 +.*.|.\也需要进行转化 版权声明:本文为博主原创文章,未经博主允许不得转载.