【问题标题】:How to print these csv file in a specific format?如何以特定格式打印这些 csv 文件?
【发布时间】:2022-01-04 01:53:30
【问题描述】:

我只是想以如下所示的格式打印 csv 文件。我该怎么做?


csv 文件

history,A,math,B,chemistry,A,geo,C,
art,B,literature,A,history,C,physics,A
public class readCsv (){
   public static void main (String [] args){
       String path = "file.csv";
       Scanner in = new Scanner (new FileReader (path));
       while (in.hasNextLine()){
          String string = in.nextLine();
          String [] token = string.split(",");
          String class = token [0] + token [2] + token [4] + token [6] ;
          String grade = token [1] + token [3] + token [5] + token [7];
          
         //prints the output
          System.out.print(class + grade);
   }
}

电流输出 -

history math chemistry geo art literature history physics ABACBACA

期望的输出 -

History - A
Math - B
Chemistry - A
Geo - C

等等……

【问题讨论】:

    标签: java loops csv split format


    【解决方案1】:
    String class = token [0] + token [2] + token [4] + token [6] ;
    String grade = token [1] + token [3] + token [5] + token [7];
    

    这是你的问题。您应该创建 2 个数组,一个用于 Class,一个用于 Grade。由于班级在偶数位置并且成绩在奇数位置,因此您应该遍历令牌数组并检查每个项目的索引。如果索引是偶数,则将项 token[index] 推送到 Class 数组。如果是奇数,则将其推送到 Grade 数组。然后遍历其中一个数组并简单地打印 Class[index] - Grade[index]。这是一些伪代码。

    Array Class
    Array Grade
    
    for i=0, i < length of array token (token.length?), i++
         if i % 2 == 0
             add token[i] to class
         else 
             add token[i] to grade 
    
    for i=0 i < length of array grade (or class), i++
         console.out(class[i] - grade[i]
    

    您会得到 Array Class = [History, Math] 和 Array Grade = [A, B](示例值)。 然后循环遍历其中一个数组,由于它们的长度相等,数组 Class 的索引 0 和数组 Grade 的索引 0 是 History 和 A。然后你只需打印它们。

    【讨论】:

      【解决方案2】:

      再次连接标记 (+) 将删除逗号。

      for (int i = 0; i < token.length/2; ++i) {
          System.out.println(token[2*i] + " - " + token[2*i + 1]);
      }
      

      println 在末尾打印一个换行符,然后您就会看到输出。

      每个班级和年级的标记对都有一个偶数/奇数索引。

      【讨论】:

        猜你喜欢
        • 2019-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-11
        • 1970-01-01
        • 1970-01-01
        • 2021-05-19
        • 2019-05-27
        相关资源
        最近更新 更多