I'm looking to take a string and break it into an array at line breaks (\n) I tried using split
but that takes away the delimiter. I need the \n
to be kept at the end of each line if it exists. Does something like this already exist or will I need to code it myself?
I tried using split but that takes away the delimiter. I need the \n to be kept at the end of each line if it exists.
You can still use it and preserve the line break if you use look-ahead or look-behind in your regex. Check out the best regular expressions tutorial that I know of:
Regex Tutorial
Look-Around section of the Regex Tutorial.
For example:
public class RegexSplitPageBrk {
public static void main(String[] args) {
String text = "Hello world\nGoodbye cruel world!\nYeah this works!";
String regex = "(?<=\\n)"; // with look-behind!
String[] tokens = text.split(regex);
for (String token : tokens) {
System.out.print(token);
}
}
}
The look-ahead or look-behind (also called "look-around") is non-destructive to the characters they match.
Alternative to @Hovercraft solution with Lookahead assertion:
String[] result = s.split("(?=\n)");
Further details about Lookahead in http://www.regular-expressions.info/lookaround.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With