我在将制表符分隔的文本格式化为 Vector 时遇到问题。你能提供帮助来实现这一目标吗?
我的字符串数组数据包含这些文本。
LastName FirstName Address City State Phone
Berry Rachel 240 Woodbridge Rd. West Haven CT (203) 933- 5678
Dillon John 29 Howe Ave. Derby CT (203) 735- 4532
...................
...................
...................
我试图让另一个子 for 循环按选项卡拆分文本,然后添加到行字符串向量,但我遇到了系统内存不足错误。我还尝试使用 Vector 中的 addAll 属性,但它将第 1 行(Berry ...)添加到第一个字段,将第 2 行添加到第二个字段,依此类推。
这是我的代码,它没有按预期工作。
rowData = new Vector<Vector>();
row = new Vector<String>();
ReadFile filedata = new ReadFile();
data = filedata.OpenFile();
for(int i = 0; i <data.length; i++)
{
row.add(data[i].split("\\t").toString());
}
rowData.addElement(row);
如何格式化数据,以便按选项卡将其拆分为不同的字段?作为参考,这是我需要它的手动方式。
Vector<String> rowOne = new Vector<String>();
rowOne.addElement("Berry");
rowOne.addElement("Rachel");
rowOne.addElement("240 Woodbridge Rd.");
rowOne.addElement("West Haven");
rowOne.addElement("CT");
rowOne.addElement("(203) 933- 5678");
Vector<String> rowTwo = new Vector<String>();
rowTwo.addElement("Dillon");
rowTwo.addElement("John");
rowTwo.addElement("29 Howe Ave.");
rowTwo.addElement("Derby");
rowTwo.addElement("CT");
rowTwo.addElement("(203) 735- 4532");
我希望我已经让自己足够清楚,任何投入都将不胜感激。谢谢你们。
编辑:我能够用双 for 循环摆脱 OutOfMemoryError 但下面的代码用第一行填充我的向量 10 次,这是数组中的行数。
EDIT2:此循环返回 10 行,每行 54 个字段。这意味着数据数组中的所有文本都被拆分并插入到这 10 行中,因此所有这 10 行都有相同的数据集。这就是为什么我的桌子被第一行填满了 10 次。
rowData = new Vector<Vector>();
row = new Vector<String>();
ReadFile filedata = new ReadFile();
data = filedata.OpenFile();
for(int i = 1; i <data.length; i++)
{
lines = data[i].split("\t");
for(int x = 0; x < lines.length; x++)
{
row.addAll(Arrays.asList(lines[x]));
}
rowData.addElement(row);
}