Please can anyone help me please? Iknow how to load Strings but idk how to Split them with “!,?,.”
Write a program that reads a text file with a name of your choice and has the following content:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua? At vero
eos et accusam et just duo dolores et ea rebum! Stet clita kasd gubergren, no sea
takimata sanctus est Lorem ipsum dolor sit amet.
Your program should display this text sentence by sentence in the console. That means one sentence per line. As soon as a sentence ends, a new line should be started.
write your own function splittTokensPreservingSeparator that does what you need OR
you stay with your current approach: then you need to search each of the resulting sentences (in a for-loop) in the initial long text, check the separator in the initial long text (after the finding) and add separator to the resulting sentence.
Maybe I can show my way later. I guess yours is faster though…
Here is my version:
// String [] text = loadStrings("data.txt");
String [] text = {
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod",
"tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua? At vero",
"eos et accusam et just duo dolores et ea rebum! Stet clita kasd gubergren, no sea",
"takimata sanctus est Lorem ipsum dolor sit amet."
};
String [] finaleAusgabe = {""};
void setup() {
//
// wir setzen alle Zeilen zu einem String ergebnisSumme zusammen, weil sich ein Satz über mehrere Zeilen erstrecken kann
String ergebnisSumme = "";
for (int i = 0; i<text.length; i++) {
ergebnisSumme += text[i].trim()+" ";
}//for
// letztes Leerzeichen entfernen
ergebnisSumme = ergebnisSumme.trim();
println(ergebnisSumme);
println( "***");
// Wir gehen den String ergebnisSumme buchstabenweise durch
int indexFinaleAusgabe=0;
for (int i=0; i< ergebnisSumme.length(); i++) {
// Wir hängen den Buchstaben an (oder auch "!", "?" oder ".")
finaleAusgabe[indexFinaleAusgabe] += ergebnisSumme.charAt(i);
// Satzende?
if ("!?.".contains(""+ergebnisSumme.charAt(i))) {
// Ja
// Die fertige Zeile wird noch beschnitten (betrifft ihren Anfang, an dem noch das Leerzeichen des letzten Satzes steht)
finaleAusgabe[indexFinaleAusgabe] = finaleAusgabe[indexFinaleAusgabe].trim();
// eine neue Zeile wird angehängt und der Index erhöht
finaleAusgabe = append(finaleAusgabe, "");
indexFinaleAusgabe++;
}// if
}//for
// The last line of the array finaleAusgabe was probably empty so we remove it
if (finaleAusgabe[finaleAusgabe.length-1].trim().equals("")) {
finaleAusgabe=shorten(finaleAusgabe);
}//if
// Ausgabe des array finaleAusgabe
for (String s1 : finaleAusgabe) {
println(s1);
}
println( "***");
}//func
//