有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何从中读取两个连续的逗号。csv文件格式在java中作为唯一值

假设csv文件包含

1,112,,ASIF

下面的代码消除了两个连续逗号之间的空值。 提供的代码超出了要求

   String p1=null, p2=null;       
    while ((lineData = Buffreadr.readLine()) != null)
        {
        row = new Vector(); int i=0;
        StringTokenizer st = new StringTokenizer(lineData, ",");

               while(st.hasMoreTokens())
               {
                row.addElement(st.nextElement());
                    if (row.get(i).toString().startsWith("\"")==true)
                    {
                        while(row.get(i).toString().endsWith("\"")==false)
                        {
                        p1= row.get(i).toString();
                        p2= st.nextElement().toString();                            
                        row.set(i,p1+", "+p2);
                        }                           
                        String CellValue= row.get(i).toString();
                        CellValue= CellValue.substring(1, CellValue.length() - 1);
                        row.set(i,CellValue);
                        //System.out.println(" Final Cell Value : "+row.get(i).toString());
                    }                       

                                            eror=row.get(i).toString();                     
                        try
                            {
                        eror=eror.replace('\'',' ');
                        eror=eror.replace('['  , ' ');
                        eror=eror.replace(']'  , ' ');
                        //System.out.println("Error "+ eror);
                        row.remove(i);
                        row.insertElementAt(eror, i);
                            } 
                        catch (Exception e) 
                            {
                            System.out.println("Error exception "+ eror); 
                            }
                        //}
                i++;
               }

如何从中读取两个连续的逗号。csv文件格式作为java中的唯一值


共 (1) 个答案

  1. # 1 楼答案

    下面是一个通过拆分为字符串数组来实现这一点的示例。更改的行标记为注释

    // Start of your code.
                row = new Vector(); int i=0;
            String[] st = lineData.split(","); // Changed
            for (String s : st) { // Changed
                row.addElement(s); // Changed
                if (row.get(i).toString().startsWith("\"") == true) {
                    while (row.get(i).toString().endsWith("\"") == false) {
                        p1 = row.get(i).toString();
                        p2 = s.toString(); // Changed
                        row.set(i, p1 + ", " + p2);
                    }
                    ...// Rest of Code here
            }