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]);