And*_*dez 6 java csv algorithm grouping parsing
我现在已经对这个问题摸不着头脑了.我基本上试图从一组CSV数据生成树层次结构.CSV数据不一定是有序的.这就像是如下:
Header: Record1,Record2,Value1,Value2
Row: A,XX,22,33
Row: A,XX,777,888
Row: A,YY,33,11
Row: B,XX,12,0
Row: A,YY,13,23
Row: B,YY,44,98
Run Code Online (Sandbox Code Playgroud)
我试图尽可能灵活地进行分组.最简单的分组是为Record1和Record2做的,Value1和Value2存储在Record2下,这样我们得到以下输出:
Record1
Record2
Value1 Value2
Run Code Online (Sandbox Code Playgroud)
这将是:
A
XX
22,33
777,888
YY
33,11
13,23
B
XX
12,0
YY
44,98
Run Code Online (Sandbox Code Playgroud)
我目前正将我的群组设置存储在列表中 - 我不知道这是否会妨碍我的想法.此列表包含组的层次结构,例如:
Record1 (SchemaGroup)
.column = Record1
.columns = null
.childGroups =
Record2 (SchemaGroup)
.column = Record1
.columns = Value1 (CSVColumnInformation), Value2 (CSVColumnInformation)
.childGroups = null
Run Code Online (Sandbox Code Playgroud)
此代码如下所示:
private class SchemaGroup {
private SchemaGroupType type = SchemaGroupType.StaticText; // default to text
private String text;
private CSVColumnInformation column = null;
private List<SchemaGroup> childGroups = new ArrayList<SchemaGroup>();
private List<CSVColumnInformation> columns = new ArrayList<CSVColumnInformation>();
}
private enum SchemaGroupType {
/** Allow fixed text groups to be added */
StaticText,
/** Related to a column with common value */
ColumnGroup
}
Run Code Online (Sandbox Code Playgroud)
我正在为此制作一个算法,试图考虑使用的底层结构.目前我使用自己的包装类从上到下解析CSV:
CSVParser csv = new CSVParser(content);
String[] line;
while((line = csv.readLine()) != null ) {
...
}
Run Code Online (Sandbox Code Playgroud)
我只是想开始我的编码大脑.
有什么想法吗?
根据这个问题的提出方式,我会执行以下操作:
这有帮助吗?
归档时间: |
|
查看次数: |
7246 次 |
最近记录: |