Parse Text using scanner useDelimiter

Posted by Brian on Stack Overflow See other posts from Stack Overflow or by Brian
Published on 2010-05-29T16:49:45Z Indexed on 2010/05/29 16:52 UTC
Read the original article Hit count: 387

Filed under:

Looking to parse the following text file:
Sample text file: <2008-10-07>text entered by user<2008-11-26>additional text entered by user

I would like to parse the above text so that I can have three variables: v1 = 2008-10-07 v2 = text entered by user v3 = Ted Parlor v1 = 2008-11-26 v2 = additional text entered by user v3 = Ted Parlor

I attempted to use scanner and useDelimiter, however, I'm having issue on how to set this up to have the results as stated above. Here's my first attempt:

enter code here

import java.io.*; import java.util.Scanner;

public class ScanNotes { public static void main(String[] args) throws IOException { Scanner s = null; try { //String regex = "(?<=\<)([^\>>*)(?=\>)"; s = new Scanner(new BufferedReader(new FileReader("cur_notes.txt"))); s.useDelimiter("[<]+");

        while (s.hasNext()) {
            String v1 = s.next();
            String v2= s.next();
            System.out.println("v1= " + v1 + " v2=" + v2);
        }
    } finally {
        if (s != null) {
            s.close();
        }
    }
}

}

The results is as follows: v1= 2008-10-07>text entered by user v2=Ted Parlor>

What I desire is: v1= 2008-10-07 v2=text entered by user v3=Ted Parlor v1= 2008-11-26 v2=additional text entered by user v3=Ted Parlor

Any help that would allow me to extract all three strings separately would be greatly appreciated.

© Stack Overflow or respective owner

Related posts about java