在Java中将CSV行转换为列
我有一个CSV,如下所示在Java中将CSV行转换为列,java,parsing,csv,Java,Parsing,Csv,我有一个CSV,如下所示 Element,Value LIN,887873083091 QTY,12 LIN,887873083107 QTY,13 LIN,887873083114 QTY,10 LIN,887873083121 QTY,6 LIN,887873083138 QTY,0 Avialability,018 Avail_Date,20391231 LIN,887873083145 QTY,0 Avialability,018 Avail_Date,20391231 LIN,8867
Element,Value
LIN,887873083091
QTY,12
LIN,887873083107
QTY,13
LIN,887873083114
QTY,10
LIN,887873083121
QTY,6
LIN,887873083138
QTY,0
Avialability,018
Avail_Date,20391231
LIN,887873083145
QTY,0
Avialability,018
Avail_Date,20391231
LIN,886732553461
QTY,0
Avialability,018
Avail_Date,20391231
LIN,886732637901
QTY,0
Avialability,018
Avail_Date,20391231
LIN,886732637918
QTY,0
Avialability,018
Avail_Date,20391231
LIN,886732637925
QTY,0
Avialability,018
Avail_Date,20391231
LIN,886732637932
QTY,0
Avialability,018
Avail_Date,20391231
LIN,886732637949
QTY,0
Avialability,018
Avail_Date,20391231
LIN,886732637956
QTY,0
Avialability,018
Avail_Date,20391231
LIN,886732637963
QTY,0
Avialability,018
Avail_Date,20391231
LIN,886732637970
QTY,0
Avialability,018
Avail_Date,20391231
如您所见,共有4个元素LIN、数量、可用性、可用日期
我想将这些元素作为列,并将值放在下面,使其成为CSV文件
如下面的示例所示
LIN,QTY,Availability,Avail_Date
887873083091,12,,
887873083107,13,,
887873083114,10,,
887873083121,6,,
887873083138,0,018,20391231
887873083145,0,018,20391231
886732553461,0,018,20391231
原始版本遵循订单LIN、数量、可用性和可用日期。。但在某些情况下,可用性和使用日期可能会丢失。在这种情况下,我想将空白设置为新CSV,就像示例输出中的前4行一样
我如何为它编写Java代码?有人能给出解决办法吗?我没有尝试过任何东西,因为我不知道这是一个粗略的大纲,可以让你开始:
String[]colName={“LIN”,“QTY”,“Availability”,“available\u Date”};
String[] colName = {"LIN","QTY","Availability","Avail_Date"};
String output = "";
int colNum = 0;
// Using file handling read row one by one (readUTF method) : this is sudo code only
// or you can use the CSV parser
while(!EOF)
{
// spilt key and value using ","
for(int i = colNum;i<colName.length;i++){
if(colName[i].equals(key)){
output = output + value + ","
break;
}else{
output = output ","
}
}
colNum = i;
if(colNum == colName.length ){
output = output "\n";
colNum = 0;
}
} // end while
字符串输出=”;
int colNum=0;
//使用文件处理逐个读取行(readUTF方法):这只是sudo代码
//也可以使用CSV解析器
而(!EOF)
{
//使用“,”拆分键和值
(int i=colNum;i)这是您到目前为止尝试过的代码吗?我没有尝试过任何东西,因为我不知道