当前位置: 首页 > 知识库问答 >
问题:

为什么在空字符串和只包含分隔符的字符串上调用split()会得到不同大小的数组

陈畅
2023-03-14

拆分空字符串后,您将获得一个包含 1 个元素的数组 拆分一个只有分隔符/分隔符的字符串(例如,只有 split(\W) 将删除的特殊字符),您将获得一个包含 0 个元素的数组?

它们都导致空令牌,所以它们肯定有相同长度的数组?但为什么不呢?

共有1个答案

张德佑
2023-03-14

因为,拆分有两种情况:

>

  • 如果未找到匹配项,则返回新的字符串 [] { 此 },例如:

    "1111".split(",") // {"1111"}
    " ".split(",") // {" "}
    "".split(",") // {""}
    

    如果找到匹配项,当< code > resultSegmentCount = 0 时,返回< code >新字符串[resultSegmentCount],例如:

     " , ".split(",") // {" ", " "}
     " ,".split(",") // {" "}
     ", ".split(",") // {" "}
     ",".split(",") // {}
    

  •  类似资料:
    • 问题内容: 我有以下python代码。 我得到以下日志打印输出。 如果我使用split(),btw代替split(’‘),则会得到相同的日志打印输出。 为什么split不将结果分成6个条目的列表?我想问题是涉及到http请求,因为我在gae交互式控制台中的测试获得了预期的结果。 问题答案: 不修改字符串。它返回拆分列表。如果要使用该列表,则需要使用来将其分配给某些内容。

    • 问题内容: 我有以下字符串: 如果仅打印此内容,它将输出如下内容(当然不会“按字面意思”打印): 调用方法时,我想获取新行()字符之间的所有字符串,甚至最后还有空字符串。 例如,如果我今天这样做: 我希望它像这样打印出来(输出A): 当前,它以这种方式打印(输出B),并且所有结尾的空字符串都将被跳过: 如何使方法像输出A那样包含空字符串?我当然可以编写多行代码,但是想知道,在我浪费时间尝试实现这一

    • 问题内容: 欲分割为4的阵列,以利用 这是我的代码: 但是,结果标记是一个空数组:[],而不是 我想要的4数组。 我已经测试过更改一点: 这次的结果标记为。这与我想要的接近,但是我真的不想在拆分之前添加此“ 1”。 问题基本上是,如果它仅包含空元素,它将返回一个空数组。 您能帮助解决问题吗? 问题答案: 您需要使用带有limit参数的重载方法。 从文档(重点是我的): limit参数控制应用图案的

    • 我能够通过使用下面这个问题的注释提供的代码来解决这个问题。所有其他帖子都是有效的! 我使用的有用的东西来自第一个评论。虽然提供的所有示例代码似乎也是有效的!

    • 问题内容: 这是该问题的后续措施。 问题在下面的第二行。 问题答案: 具体根据 源,其使用,