I'd like to specify a delimiter for a scanner that splits on some pattern, but doesn't remove that pattern from the tokens. I can't seem to make this work, as anything that is identified by the regex also gets eaten as part of the delimiter. Any suggestions?
My specific problem, I have file that looks like:
text/numbers mix
numbers
numbers
text/numbers mix
numbers
numbers
numbers
.
.
I'd like to split out from the text/numbers mix+rows until the next text/numbers mix. I have the regex to identify them, but as stated, using that as the delimiter eats part of what I want.
EDIT: code addition:
static final String labelRegex="\s*[^01\s*]\w+\s*";
static final Pattern labelPattern = Pattern.compile(labelRegex, Pattern.MULTILINE);
is the pattern I used to identify the text/numbers bit (I know my numbers rows contain all 1/0s separated by spaces).
When I initialize the scanner:
stateScan = new Scanner(new BufferedReader(new FileReader(source)));
stateScan.useDelimiter(labelPattern);
that eats the labels, and just leaves the rows. I currently have a working implementation that starts two scanners on two buffered file readers from the same source, one splitting by states and the other by labels. I'd really like it to be just one grabbing label+state.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…