extract data column-wise from text file using Java

前端 未结 2 839
南笙
南笙 2020-12-20 09:54

I\'m working under Java and want to extract data according to column from a text file.
\"myfile.txt\" contents:

    ID     SALARY RANK  
    065    120         


        
相关标签:
2条回答
  • 2020-12-20 10:08

    You can use a regex to detect longer spaces, example:

    String text = "ID     SALARY RANK\n" +  
                "065    12000   1\n" +
                "023    15000   2\n" +
                "035    25000   3\n" +
                "076    40000   4\n";
    
    Scanner scanner = new Scanner(text);
    
    //reading the first line, always have header
    //I suppose
    String nextLine = scanner.nextLine();
    //regex to break on any ammount of spaces
    String regex = "(\\s)+";
    
    
    String[] header = nextLine.split(regex);
    
    //this is printing all columns, you can 
    //access each column from row using the array
    //indexes, example header[0], header[1], header[2]...
    System.out.println(Arrays.toString(header));
    
    //reading the rows
    while (scanner.hasNext()) {
        String[] row = scanner.nextLine().split(regex);
    
        //this is printing all columns, you can 
        //access each column from row using the array
        //indexes, example row[0], row[1], row[2]...
        System.out.println(Arrays.toString(row));
        System.out.println(row[0]);//first column (ID)
    }
    
    0 讨论(0)
  • 2020-12-20 10:11
       while((line = b.readLine()) != null) {
          String[] columns = line.split(" ");
          System.out.println("my first column : "+ columns[0] );
          System.out.println("my second column : "+ columns[1] );
          System.out.println("my third column : "+ columns[2] );
       }
    

    Now instead of System.out.println, do whatever you want with your columns.

    But I think your columns are separated by tabs so you might want to use split("\t") instead.

    0 讨论(0)
提交回复
热议问题