DCV 2022 03/Strukturierte Programmierung Uebungen/String Operationen
Im folgenden sollen die String Operationen replaceAll(...), matches(...), split(...) erarbeitet werden.
Aufgabe: Bubblesort mit Strings
Verwende das gegebene String[] und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es dann aus. Der Bubblesort Algorithmus soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der main Methode.
- Sortiere die Namen aufsteigend (Ascending)
- Sortiere die Namen absteigend (Descending)
Tip.: Strings können mit der Instanz MethodecompareToderStringKlasse verglichen werden:"a".compareTo("b")
String[] names new String[]{"Plamena", "Sadaaq", "Gyula", "Eray", "Gerri", "Stefan", "Lena", "Danny", "Ömer", "Stjepan", "Sandro", "Bartosz", "Ingo", "Rauan", "Mahir", "Lukas", "Niklas"};
Aufgabe: Bubblesort mit Strings Extended
Verwende das aus der vorhergehenden Aufgabe gegebene String[] und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es dann aus. Der Bubblesort Algorithmus soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der main Methode. Die Methode soll nun zusätzlich zum String[] Parameter einen weiteren boolean als Parameter erhalten. Dieser boolean entscheidet, ob das String[] aufsteigend, oder absteigend sortiert wird.
Aufgabe: Bubblesort mit Strings an Character Index
Verwende das aus der vorhergehenden Aufgabe gegebene String[] und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es dann aus. Der Bubblesort Algorithmus soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der main Methode. Die Methode soll nun zusätzlich zum String[] Parameter einen weiteren int als Parameter erhalten. Dieser int steht für den Index des char im String nach dem sortiert werden soll.
Prüfe zuerst ob die Sortierung nach dem gegebenen Index erfolgen kann. Wenn der Index zu groß ist, mach eine entsprechende Ausgabe und sortiere nicht.
Aufgabe: Email Regex aka. Regbert
Erstelle einen regulären Ausdruck (Regular Expression) für Email Adressen.
String regex = "[richtiger Regex hier]";
Aufruf System.out.println("alfons@drlue.at".matches(regex)); Ausgabe true
Aufruf System.out.println("rambina.alfons@drlue.at".matches(regex)); Ausgabe true
Aufruf System.out.println("rambina1.1alfons@drlue.at".matches(regex)); Ausgabe true
Aufruf System.out.println("1rambina1.alfons@drlue.at".matches(regex)); Ausgabe false
Aufruf System.out.println("@drlue.at".matches(regex)); Ausgabe false
Aufruf System.out.println("drlue.at".matches(regex)); Ausgabe false
Aufruf System.out.println("asdf@drlue".matches(regex)); Ausgabe false
Aufruf System.out.println("asdf@microsoft.c".matches(regex)); Ausgabe false
Aufgabe: Replace all
Ersetze im String
"Heute wird ein guter Tag! Heute wird ein noch guterer Tag! Heute wird ein spitzen guter Tag!"
wird durch war und ist und gib ihn aus.
Aufgabe: Replace all 2
Lösche im String
"Heute wird ein guter Tag! Heute wird ein noch guterer Tag! Heute wird ein spitzen guter Tag!"
- Jeden Kleinbuchstaben und gib ihn aus
- Jeden Großbuchstaben und gib ihn aus
- Jedes Leerzeichen und gib ihn aus
- Jedes Ausrufezeichen ! und gib ihn aus
Aufgabe: Replace all 3
Lösche im String
"749813247132984712039487123049871204398712039487"
- Alle Zahlen von 0 bis 9 und gib ihn aus
- Alle Zahlen von 1 bis 9 und gib ihn aus
- Alle Zahlen von 2 bis 4 und gib ihn aus
- Alle Zahlen von 1 bis 3 und 6 bis 9 und gib ihn aus
Aufgabe: Split
Erstelle eine Methode welche den String
"Heute wird ein guter Tag! Heute wird der beste Tag überhaupt! Heute wird ein spitzen super Tag!"
mit Hilfe eines gegebenen Strings zerlegt, welcher als Parameter mitgegeben wird und den das String[] zurückgibt. Füge das String[] mittels eines StringBuilder wieder zusammen füge jedoch nach jedem append auch einen System.lineSeparator() hinzu. Gib dann den String den du vom StringBuilder erhältst aus. Teste deine Methode in der main Methode mit einigen Beispielen.
Aufruf
String[] words = wordSplit(text, "Tag");
...
Ausgabe
Heute wird ein guter
! Heute wird der beste
überhaupt! Heute wird ein spitzen super
!
Aufgabe: Split & Sort
Erstelle eine Methode welche den String
"Heute wird ein guter Tag! Heute wird der beste Tag überhaupt! Heute wird ein spitzen super Tag!"
in seine Worte zerlegt. Sortiere dann die Worte mit Bubblesort. Füge das String[] mittels eines StringBuilder wieder zusammen gib dann den String, den du von StringBuilder erhältst aus.