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

用空元素在Java中拆分字符串

席银龙
2023-03-14
问题内容

我正在逐行读取.csv文件。例如,一行可能如下所示:String str = "10,1,,,,"

现在我想根据“,”进行拆分:String[] splitted = str.split(",");现在的问题是,这仅导致2个元素,但我想拥有5个元素,前两个元素应包含10和1,其他3个元素应为空串。

另一个例子是String str = "0,,,,,"只包含一个元素,但我希望有5个元素。

最后一个示例String str = "9,,,1,,"给出了2个元素(9和1),但我希望有5个元素。第一个元素应为9,第四个元素应为1,所有其他元素应为空String。

如何才能做到这一点?


问题答案:

您需要将其与-1参数一起使用

String[] splitted = str.split(",", -1);

之前已经讨论过了,例如 Java:Stringsplit():我希望它在最后包含空字符串

split实际上 不应该是 解析csv的方式,当您的String值包含逗号时可能会遇到问题

23,"test,test","123.88"

split 会将行分为4部分:

[23, "test, test", "123.88"]

而且我不认为你想要那个。



 类似资料:
  • 我正在逐行阅读.csv文件。例如,一行可以如下所示:。 现在我想拆分根据 ",": <>字符串[]拆分=str.split (",");现在的问题是,这只会导致2个元素,但我想有5个元素,前两个元素应该包含10和1,其他3应该只是一个空字符串。 另一个例子是,它只产生一个元素,但我想要5个元素。 最后一个例子是< code>String str = "9,,,1,," 给出了2个元素(9和1),但

  • 我有输入字符串'~~'作为分隔符。 例如:字符串s=“1~~vijay~~25~~pune”;当我在Java中用'~\\~'拆分它时,它工作得很好。 还有其他人面临同样的问题吗?请就这个问题发表评论。

  • 我目前正在尝试将字符串拼接成多行字符串。正则表达式应选择前面有 13 个字符的空格。 问题在于,13个字符的计数在前一个选定的空白之后不会重置。因此,在前13个字符之后,正则表达式选择每个空白。 我使用以下正则表达式,其 13 个字符: (结尾有一个空格) 您可以在这里测试正则表达式和以下代码: 此代码的输出如下所示: 这是个测试。 应用 应在 13 个字符后的空格上以子字符串分隔此字符串 但应该

  • 问题内容: 我试图使用分隔符拆分值。但是我发现了令人惊讶的结果 我期望得到8个值。[5,6,7,EMPTY,8,9,EMPTY,EMPTY] 但是我只得到6个值。 任何想法以及如何解决。无论EMPTY值在何处,它都应该位于数组中。 问题答案: 默认情况下,从结果数组中删除结尾的空字符串。要关闭此机制,我们需要使用重载版本,将其设置为负值,例如 更多细节: 内部返回该方法的结果,你可以在此方法的文档

  • 任何想法和如何修复。无论空值出现在任何位置,它都应该在数组中。