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

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

吴英武
2023-03-14

我正在逐行阅读.csv文件。例如,一行可以如下所示:String str=“10,1,,,”

现在我想拆分根据 ",": <>字符串[]拆分=str.split (",");现在的问题是,这只会导致2个元素,但我想有5个元素,前两个元素应该包含10和1,其他3应该只是一个空字符串。

另一个例子是String str="0,,,,",它只产生一个元素,但我想要5个元素。

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

这怎么能做到呢?

共有3个答案

王棋
2023-03-14

-1(或任何负数)作为第二个参数进行拆分:

System.out.println("0,,,,,".split(",", -1).length); // Prints 6.

文喜
2023-03-14

默认情况下,拆分仅删除尾随分隔符。您可以使用

String str = "9,,,1,,";
String[] parts = str.split(",", -1);
System.out.println(Arrays.toString(parts));

打印

[9, , , 1, , ]
宗政卓
2023-03-14

您需要将它与< code>-1参数一起使用

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

这在前面已经讨论过了,例如Java:String split():我希望它在末尾包含空字符串

但是拆分真的不应该是你解析csv的方式,当你有一个包含逗号的字符串值时,你可能会遇到问题

23,"test,test","123.88"

拆分将行拆分为4个部分:

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

我不认为你想要那样。

 类似资料:
  • 问题内容: 我正在逐行读取.csv文件。例如,一行可能如下所示:。 现在我想根据“,”进行拆分:现在的问题是,这仅导致2个元素,但我想拥有5个元素,前两个元素应包含10和1,其他3个元素应为空串。 另一个例子是只包含一个元素,但我希望有5个元素。 最后一个示例给出了2个元素(9和1),但我希望有5个元素。第一个元素应为9,第四个元素应为1,所有其他元素应为空String。 如何才能做到这一点? 问

  • 所以,我有以下情况: 所以,我知道用户会输入这样的内容:爱猫和狗。我希望第一个单词(在这个例子中是爱情)总是在第一个字符串中,其他所有单词都在第二个字符串中。我怎样才能做到尽可能简单?

  • 问题内容: 我有一个字符串如下: 我想提取数字:872226816,因此在这种情况下,我假设在第二个逗号开始读取数据之后,随后的逗号结束数据读取。 输出示例: 问题答案: 用于String.split()的 Javadoc

  • 问题内容: 解析文本文件时需要帮助。文本文件包含类似 我的问题是单词之间的空格不相似。有时只有一个空格,有时会给出多个空格。 我需要以这样的方式分割字符串,使我只会得到单词,而不是空格。 问题答案: 会工作。的在正则表达式的结尾,将治疗多发性空格一样单个空格。它返回一个字符串数组(),没有任何结果。

  • 问题内容: 我有一个像这样的字符串: 我想拆分该字符串并选择作为分隔符。 我的代码如下所示: 我得到的是一个包含所有字符作为一个条目的数组: 有人知道为什么吗? 我不能用分割字符串吗? 问题答案: 在RegEx中被视为。因此,您需要对其进行转义:

  • 问题内容: 我有类似的字符串,我需要将它们按字符分开,然后将两个部分分别分配给一个变量。在Ruby中,我会这样做: 显然,Lua没有这么简单的方法。经过一番挖掘,我找不到一种简短的方法来实现自己的目标。我提到我是Lua的一个新手,我需要在Redis的脚本中使用它(因此,它确实应该很小,如果可能的话,只写一个)。 问题答案: 使用模式匹配: 请注意,这是一个魔术字符,因此必须使用进行转义。