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

一串拆分(“A;B;;;;”)未按预期工作[重复]

丌官晔
2023-03-14

我需要使用“;”拆分字符串作为分隔符,如果字符串中所有的字段都被填充了,这很好,但是如果一些字段没有被填充,比如< code > string . split(" A;b;c;;;")不起作用...对于这个字符串,我预计输出将

[0]=A

[1] =B

[2]=C

[3]=''

[4]=''

[5]=''

,但输出只有前三个字段

[0]=A

[1] =B

[3]=C

...未创建其他字段

如何解决这个问题的一些线索?

共有2个答案

米丰
2023-03-14

如果没有错,split会在两个分隔符之间查找字符[ASCII],如果是

str.split("A;B;C;;;"),

两个分号之间没有字符。默认拆分删除空字符串,以否决我们需要使用重载拆分,如Java文档中所述。

如果可能,根据您的输入架构试试这个:

String str = "A;B;C;;;";
str.split(";", -1);

这有助于查找空字符串输出

[0] = "A"
[1] = "B"
[2] = "C"
[3] = ""
[4] = ""

希望这有所帮助。

孙修德
2023-03-14

; 字符将 C 与字符串的末尾分开,无论有多少个。方法不会返回纯空格或空字符串。

 类似资料:
  • 我目前正试图研究并发性,特别是“volatile”关键字。 通过声明计数器变量为volatile,所有对计数器变量的写入都将立即写回主存。此外,计数器变量的所有读取都将直接从主存中读取。下面是计数器变量的volatile声明的外观 和 当线程写入易失性变量时,不仅易失性变量本身会被写入主内存。此外,线程在写入易失性变量之前更改的所有其他变量也会刷新到主内存中。当一个线程读取一个易失性变量时,它还将

  • 我有一个2.5 GB的数据帧。分区数为5000。我正在尝试重新分区,然后将其持久化。但是在我读取持久化数据之后,分区的数量正在改变。 我甚至尝试使用coalesce,但没有运气。有人能解释一下发生了什么吗?

  • 我有一个数组,我试图删除数据的基础上,但部分数据被拉出和值填充的地方。 大堆 现在我想提取这些数据 完全基于 更新的命令: 请暂时忽略括号。目前在我得到的输出中 控制器中的代码:

  • 我正在使用spring Roo并希望访问Controller类中的一个bean,该类在ApplicationContext.xml中具有以下配置: 配置类本身是: 在我的Controller中,我认为一个简单的Autowired注释应该可以完成这项工作 在启动过程中,spring在setSkipWeeks方法中打印消息。不幸的是,每当我在控制器中调用config.getSkipWeeks()时,它

  • 当我运行以下程序时,它只打印 然而,从Java 8的equalsIgnoreCase文档中我们发现: 如果以下至少一项为真,则两个字符c1和c2被视为相同的忽略情况: •对每个字符应用java.lang.character.ToUpperCase(char)方法会产生相同的结果 所以我的问题是为什么这个程序不打印 在这两种操作中,都使用了大写字符。

  • 我试图使用来传输我根据前面的问题设置的自定义标头。 我在文件中读到... 我的属性包括: