当前位置: 首页 > 面试题库 >

为什么在对不带分隔符的split()进行遍历时,数组的第0个索引中出现“”?

公西博实
2023-03-14
问题内容
public static void main(String[] args) {
    // TODO Auto-generated method stub

    String str="aaabbddaabbcc";
    String[] str2=str.split("");
    String pointer=str2[0];
    int count=0;
    String finalStr="";
    for(String str132:str2)
    {
        if(str132.equalsIgnoreCase(pointer))
        {
            ++count;
        }
        else
        {

            finalStr+=str132+count;
            count=0;
            pointer=str132;
            ++count;
        }
    }
    System.out.println(finalStr);
}

在执行时str.split(""),为什么""str2数组的第0个索引中得到一个?


问题答案:

为什么我在str2数组的第0个索引中得到“”?

因为您使用的定界符已在此处匹配:

 aaaabbddaabbcc
^

由于.split()收集到的零件在进入字符串时会“走过去”,因此这里收集了空字符串。

还要注意,由于定界符为空,为了避免无限循环,在下一次迭代时,.split()将转发一个字符,然后再次开始搜索。



 类似资料:
  • 我有一个无序数组,由连续的整数组成,没有任何重复项。允许交换任意两个元素。我需要找到按升序对数组排序所需的最小交换数。 在本例中,您可以看到,对于p=1,当索引为0和1时,交换不发生。 我改变了b[p-1],b[b.index(p)]的顺序,我不再有同样的问题了,但我不明白原因。

  • 本文向大家介绍react中遍历时为什么不用索引作为唯一的key值?相关面试题,主要包含被问及react中遍历时为什么不用索引作为唯一的key值?时的应答技巧和注意事项,需要的朋友参考一下 key作为组件的唯一标志,在数组中删除时,虽然对应的组件删除了,但是对应的索引值会被自动替代.比如3个组件,删除第2个,真正想要的是[1,3].但展示的可能是[1,2]

  • 问题内容: 阅读有关ADT列表的Java文档时,它说: List接口提供了四种位置(索引)访问列表元素的方法。列表(如Java数组)从零开始。请注意,对于某些实现(例如,LinkedList类),这些操作可能在时间上与索引值成比例执行。因此,如果调用者不知道实现,则遍历列表中的元素通常比对其进行索引更可取。 这到底是什么意思?我不明白得出的结论。 问题答案: 在链接列表中,每个元素都有一个指向下一

  • 我知道在Swift 3中,循环的典型C风格发生了一些变化。我一直在努力解决这个问题,但在很多情况下,我似乎比以前编写了更多的代码。也许有人能把我引向正确的方向,因为这就是我想要的: 非常简单的东西。我希望能够获取我所在的索引,并且如果names.count==0,则不运行for循环。一气呵成。 但我在Swift 3中的选择似乎不允许我这样做。我必须做一些类似的事情: 需要在开始时使用if语句,因为

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

  • 问题内容: 有关MySQL的COUNT()聚合函数的问题一直不时出现。我想对为什么它按原样工作有一些解释。 当我开始使用MySQL时,我很快了解到,如果条件最后还包含OR NULL,则它的COUNT(condition)似乎只能正常工作。在更复杂的COUNT条件的情况下,找出确切的位置是一个经验过程。在MSSQL中,不需要此OR NULL即可获得正确的结果,因此我想了解其解释。所以,这是一个例子。