将分号文件拆分成数组,这很奇怪

时间:2011-12-13 21:29:07

标签: java arrays

我想拆分一个单词字符串,以便每个单词都用分号分割成一个数组。

为什么这个字符串的长度只有2?如何使数组的长度始终为bee 6,因为我的文件中的每一行都被分隔成由分号分隔的6个字段。固定长度的数组将使创建对象变得更加容易。

String line = "Name;Phone;;;;;";
String parts[] = line.split(";");

在这种情况下,部件的长度将为2。

6 个答案:

答案 0 :(得分:1)

我认为你需要使用

String parts[] = line.split(";",6);

javadoc可以看出,您可以对拆分方法实施限制。

答案 1 :(得分:1)

我建议使用Apache StringUtils

具体来说,我会使用以下两种方法之一:

splitPreserveAllTokens(String str, String separatorChars) 
splitPreserveAllTokens(String str, String separatorChars, int max) 

这些方法将保留数组中的空标记。第二个将强制您的结果具有最大大小(例如6),但如果单词数量超出限制,则可能导致您的最终标记包含分隔符。

答案 2 :(得分:1)

您可以先声明数组

  String parts[] = new string[6];

答案 3 :(得分:1)

String.split()方法的文档提到跳过空字符串。

您可以尝试以下操作来保持尾随空字符串:

String parts[] = line.split(";", -1);

答案 4 :(得分:1)

请尝试line.split(";",-1)

答案 5 :(得分:0)

使用Google's Guava library它有一个高级拆分器

Splitter.on(';')
       .trimResults()
       .omitEmptyStrings()
       .split("Name;Phone;;;;;");