使用数组将CSV列称为Java程序

时间:2019-02-27 00:42:26

标签: java arrays parsing arraylist

代码如下:

private static void readInput(String arr[], List<Table> tables) {
    if (arr.length < 4 || !arr[0].equalsIgnoreCase("select") || !arr[2].equalsIgnoreCase("from")
        || !String.valueOf(arr[arr.length - 1].charAt(arr[arr.length - 1].length() - 1)).equals(";")) {
      System.out.println("Output : SQL Error (Syntax Error)");
      return;
    }


    if (arr.length == 4) {
      Table table = searchTable(arr[3], tables);
      if (table == null) {
        System.out.println("Output : SQL Error (Table Not Found)");
        return;
      }

      if (arr[1].equals("*")) {
        System.out.println("Tabel \t: " + table.getName());
        System.out.print("List Kolom \t:");
        for (int i = 0; i < table.getColumns().length; i++) {
          String s = table.getColumns()[i];
          System.out.print(s);
          if (i != table.getColumns().length - 1)
            System.out.print(",");
        }
        System.out.println();
      } else {
        String selColumns[] = arr[1].split(",");
        boolean first = true;

        System.out.println("Tabel \t\t: " + table.getName());
        System.out.print("List Kolom \t: ");

        for (int i = 0; i < selColumns.length; i++) {
          for (int j = 0; j < table.getColumns().length; j++) {
            if (selColumns[i].equals(table.getColumns()[i])) {
              if (first) {
                System.out.print(selColumns[i]);
                first = false;
                break;
              } else {
                System.out.print("," + selColumns[i]);
                break;
              }
            }
          }
        }
      }

表:

会员,会员ID,妈妈,电话

Meminjam,id_buku,id_member,durasi;

Buku,id_buku,judul,类型;

该程序用于检查sql语句。它解析CSV文件中的数据。问题是当我选择2个以上的列时(例如,当我从成员中选择id_member时),它将显示表的名称和(属性)列。但是,当我尝试显示2列或更多列时,例如从member中选择id_member,nama等示例;该程序将仅显示id_member而不是id_member和nama。仅当我选择CSV中的第一列时,程序才会运行。

这是示例: example

0 个答案:

没有答案