Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中将CSV行转换为列_Java_Parsing_Csv - Fatal编程技术网

在Java中将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

我有一个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,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代码?有人能给出解决办法吗?我没有尝试过任何东西,因为我不知道这是一个粗略的大纲,可以让你开始:

  • 创建一个简单的助手类,该类具有以下属性:LIN、数量、可用性、可用日期
  • 逐行阅读
  • 创建助手类的新实例并将其放入ArrayList中
  • 对于每行调用split()
  • 填写助手类的相应属性
  • 如果检测到读取了新对象,请创建帮助器类的新实例
  • 读取ArrayList上的文件循环后,在输出文件中写入一行
  • 只要尝试一下,如果你被卡住了,就发布你的代码。

    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)这是您到目前为止尝试过的代码吗?我没有尝试过任何东西,因为我不知道