Strings verarbeiten
Fragen
- Warum werden die String-Methoden als Methoden bezeichnet und nicht als Funktionen?
- Wie kann ich auf die String-Methoden zugreifen?
- In Processing kannst du String-Methoden auf 2 verschiedene Arten aufrufen. Warum ist das so und wie unterscheiden sich die beiden Arten?
- Was bedeutet der Begriff "Parsen"? Was passiert, wenn wir Strings parsen?
Aufgaben
1. Teilstring suchen und finden
Gegeben sei der String:
String str = "Hier ist die Info: James Bond";
Schreibe Code, der "James Bond" auf der Konsole ausgibt. Der Code soll auch bei anderen Agenten funktionieren, z.B.:
String str = "Hier ist die Info: Spiderman";
Der Code soll auch funktionieren, wenn sich der Text vor dem Doppelpunkt ändert. Teste im Anschluss den Code mit:
String str = " Codename: James Bond ";
2. Suchen und ersetzen
Gegeben sei der String-Array:
String[] lines = {"Hello FOO", "Guten Tag, FOO", "Bonjour FOO"};
Schreibe Code, der alle Array-Elemente ausgibt, wobei das Wort "FOO" durch "James Bond" ersetzt werden soll.
Hinweis: Du kannst die Aufgabe entweder mit replace oder mit den Funktionen indexOf/substring lösen. Ich empfehle, auf jeden Fall die Lösung mit indexOf/substring zu probieren.
Eine Alternativaufgabe ist, statt nur zu printen ein zweites Array zu erstellen, wo - wie oben - alle FOO durch "James Bond" ersetzt sind. Eine leichte Erweiterung der Aufgabe ist es, Sätze wie "Hey FOO, you will die!" aufzunehmen und dort FOO wie oben zu ersetzen (ohne das Satzende zu verlieren).
3. Suchen und finden
Gegeben sei der String-Array:
String[] lines = {"This is it", "DO NOT DO THIS", "Why not", "This is right", "That not", "What is this"};
Schreibe Code, der alle Array-Elemente ausgibt, die mit "this" beginnen oder enden. Dabei soll Groß-/Kleinschreibung keine Rolle spielen.
4. Boolean parsen
Schreibe eine Funktion parseBool(), die boolesche Werte, die als String vorliegen (also "true" oder "false"), in einen echten booleschen Wert umwandelt (also true oder false). Deine Funktion hat also einen Parameter vom Typ String und gibt einen booleschen Wert zurück.
Teste deinen Code mit:
void setup() {
if (parseBool("true"))
println("hat geklappt!");
}
5. Wörter zählen
Gegeben sei folgender Text:
String str = "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 justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 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 justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.";
Schreibe eine Funktion countWords() die zählt, wie viele Wörter in einem String enthalten sind, der dieser Funktion als Parameter übergeben wird. Das Ergebnis (die Anzahl der Wörter) soll als Rückgabewert zurückgegeben werden.
Teste deinen Code mit:
void setup() {
println("Der Text hat " + countWords(str) + " Wörter.");
}
6. Text umkehren
Schreibe eine Funktion swap(), welche einen String, welcher dieser Funktion als Parameter übergeben wird, umkehrt und zurückgibt. Der erste Buchstabe soll quasi nach der Umkehrung der letzte sein und der letzte der erste.
Teste deinen Code mit:
void setup () {
println(swap("Hallo"));
println(swap("Fachhochschule"));
}
ollaH
eluhcshcohhcaF
7. Spracherkennung
Schreibe ein Programm, welches die Spracheingabe mittels Google oder Siri simuliert. Stell dir vor dein Programm hat eine "Hey Googe, ..." Aussage aufgenommen und diese liegt dir im Programm nun als Text vor. Dein Programm soll den Text auswerten und die Antwort in der Konsole ausgeben.
Der Satz, den dein Programm aufgeschnapp hat lautet: "Hey Google, was ist 5 plus 7?"
Dein Programm soll nun die für die Rechenaufgabe wichtigen Elemente aus dem Text herausfiltern und die Rechenaufgabe lösen. Dein Programm sollte auch mit anderen Zahlen und mit Subtraktion, Multiplikation und Division funktionieren.