Hallo,
ich habe einen string, welcher aus einer Menge an Text besteht wobei jede Zeile mit \n abschließt.
In diesem text befindet sich in beliebig ofter Anzahl der text java.lang.AssertionError\n gefolgt von 2 weiteren zeilen welche die fehl geschlagene asserion dokumentieren.
Wie kann ich mir diese 3 Zeilen oder auch nur 2 da ich die erste Zeile mit java.lang.AssertionError ja nicht brauche in ein String Array speichern.
Habe es mit Regex Ausdruck versucht. der aber misslingt. weil ich so nicht die 3 zeilen in meinem string bekomme.
was mache ich falsch und wie muss es richtig heißen?
ich habe einen string, welcher aus einer Menge an Text besteht wobei jede Zeile mit \n abschließt.
In diesem text befindet sich in beliebig ofter Anzahl der text java.lang.AssertionError\n gefolgt von 2 weiteren zeilen welche die fehl geschlagene asserion dokumentieren.
Wie kann ich mir diese 3 Zeilen oder auch nur 2 da ich die erste Zeile mit java.lang.AssertionError ja nicht brauche in ein String Array speichern.
Habe es mit Regex Ausdruck versucht. der aber misslingt. weil ich so nicht die 3 zeilen in meinem string bekomme.
Java:
private static String[] getFailedAssertions(String trace) {
ArrayList<String> failureList = new ArrayList<String>();
Pattern p = Pattern.compile(".");
Matcher m = p.matcher("java.lang.AssertionError");
while (m.find()) {
int endFirst = trace.indexOf("\n", m.end());
int endLast = trace.indexOf("\n", endFirst);
String failure = trace.substring(m.end(), endLast);
failureList.add(failure.replaceAll("\n", " "));
}
return failureList.toArray(new String[failureList.size()]);
}
was mache ich falsch und wie muss es richtig heißen?