Skip to content
Advertisement

How to print first word from a file separeted by a tab line?

i am trying to read a file and print only the first number from each line . i have tried to use split, but it never return correct result , it just print entire contetn as below in the table. Any help would be highly appreciated

**thats my file** 

 40    3  Trottmann
 43    3  Brubpacher
252    3  Stalder
255    3  Leuch
258    3  Zeller
261    3  Reolon
264    3  Ehrismann
267    3  Wipf
270    3  Widmer 

**expected output** 
 40
 43
258
261
264
267
270

output

258
261
264
267
270

public class word {

            public static void main(String[] args) {
                
                // Create file
                File file = new File("/Users/lobsang/documents/start.txt");
    
                try {
                    // Create a buffered reader
                    // to read each line from a file.
                    BufferedReader in = new BufferedReader(new FileReader(file));
                    String s;
    
                    // Read each line from the file and echo it to the screen.
                    s = in.readLine();
                    while (s != null) {
                        
                          
                        
                        System.out.println(s.split("s")[0]);
                    
                        
                        s = in.readLine();
                    }
                    
                    // Close the buffered reader
                    in.close();
    
                } catch (FileNotFoundException e1) {
                    // If this file does not exist
                    System.err.println("File not found: " + file);
    
                } catch (IOException e2) {
                    // Catch any other IO exceptions.
                    e2.printStackTrace();
                }
            }
    
        }

Advertisement

Answer

As I already answered in the comments, you need to escape the backslash in java. Furthermore, you can trim() the string before splitting it, which removes leading and trailing whitespaces. This means, it will also work with two digit or one digit numbers. So what you should use is:

System.out.println(s.trim().split("\s")[0]);

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement