I'm trying to split text in a JTextArea
using a regex to split the String by \n
However, this does not work and I also tried by \r\n|\r|n
and many other combination of regexes.
Code:
public void insertUpdate(DocumentEvent e) {
String split[], docStr = null;
Document textAreaDoc = (Document)e.getDocument();
try {
docStr = textAreaDoc.getText(textAreaDoc.getStartPosition().getOffset(), textAreaDoc.getEndPosition().getOffset());
} catch (BadLocationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
split = docStr.split("\\n");
}
If you don’t want empty lines:
This should cover you:
There's only really two newlines (UNIX and Windows) that you need to worry about.
Maybe this would work:
Remove the double backslashes from the parameter of the split method:
As an alternative to the previous answers, guava's
Splitter
API can be used if other operations are to be applied to the resulting lines, like trimming lines or filtering empty lines :Note that the result is an
Iterable
and not an array.You don't have to double escape characters in character groups.
For all non empty lines use: