Übungsaufgabe zur Veranstaltung Objektorientiertes Programmieren im Bachelorstudiengang Wirtschaftsinformatik an der Hochschule Rosenheim.
In dieser Übung implementieren wir die Datenstruktur Stack (siehe Interface CharStack
), und verwenden sie anschließend um Strings auf Palindromeigenschaft zu prüfen.
-
Erstellen Sie wieder einen persönlichen Fork des Projekts.
-
Klonen Sie das Projekt lokal, in dem Sie in IntelliJ das Projekt von Git importieren lassen, oder "per Hand" in der Konsole:
git clone https://github.com/IHR_BENUTZERNAME/example.git
-
Erstellen Sie einen lokalen Branch
loesung
(oder einem anderen Namen Ihrer Wahl)- IntelliJ: Git Schaltfläche rechts unten -> "+ New Branch"
- Im Terminal (Schaltfläche links unten: "Console"/"Konsole"):
git checkout -b loesung
-
Vervollständigen Sie die Klasse
CharStackImpl
in dem Sie diepush
,pop
undsize
Methoden implementierenpush
legt ein Element oben auf den Stack,pop
entfernt das oberste; der Stack ist also FILO -- first in - last out, bzw. LIFO -- last in - first out.- Denken Sie auch an die benötigte Hilfsklasse, um die Elemente zu modellieren.
- Verifizieren Sie, dass der Test
CharStackTest
fehlerfrei abläuft.
-
Fügen Sie die geänderte Datei
CharStackImpl.java
sowie die Hilfsklasse Ihrem Commit hinzu, im IntelliJ mit
Rechtsklick -> Git -> Add, oder in der Konsole mitgit add src/main/java/ueb01/CharStackImpl.java
-
Committen und pushen Sie die Änderungen
- IntelliJ: VCS -> Commit Changes -> Commit and Push
- Terminal:
git commit -m "Ihre Commit-Nachricht" git push -u origin loesung
-
Implementieren Sie die statische Methode
Palindrom.istPalindrom()
, in der Sie nun den Stack verwenden, um beliebige Strings auf Palindrome zu testen.- Ein String ist ein Palindrom, wenn er vorwärts wie rückwärts die selbe Buchstabenfolge hat, also an der Wortmitte "gespiegelt" ist.
Wie kann dazu der Stack verwendet werden? - Die Methode
String.replaceAll
kann verwendet werden, um alle Leerzeichen zu entfernen. - Die Methode
String.toLowerCase
(bzw.toUpperCase
) wandelt alle Zeichen in Klein- bzw. Großbuchstaben um - Die Methode
String.toCharArray
gibt den String als Array vonchar
s zurück. - Verifizieren Sie, dass der Test
testPalindrom()
fehlerfrei abläuft.
- Ein String ist ein Palindrom, wenn er vorwärts wie rückwärts die selbe Buchstabenfolge hat, also an der Wortmitte "gespiegelt" ist.
-
Committen und pushen Sie die Änderungen.
Hinweis: Die kommenden Aufgaben werden Git immer in der selben Art verwenden. Gewöhnen Sie sich diesen Workflow an, wir werden ihn in den weiteren Übungsangaben nicht erneut ausformulieren.
- Mergen Sie nun Ihren Branch
loesung
in denmaster
Branch:- Checken Sie den
master
Branch aus - Mergen Sie
loesung
- Pushen Sie nun alles in Ihr Github Repository.
- Verifizieren Sie auf Github, dass Ihre Änderungen alle übernommen und dokumentiert sind.
- Checken Sie den
Lokales Klonen des Repositorys:
git clone https://github.com/IHR_USERNAME/uebung01
Dann im lokalen Verzeichnis:
git checkout -b loesung # checkout neuer Branch `loesung`
git status # was wurde verändert?
git add src/main/java/ueb01/CharStackImpl.java # staging
git commit -m "Stack fertig implementiert"
# ... weitere commits moeglich!
# lokalen `loesung` Branch pushen, `-u origin loesung`
# da dieser Branch remote noch nicht existiert!
git push -u origin loesung
# mergen:
git checkout master # auf `master` wechseln
git merge loesung # jetzt `loesung` -> `master`
git push # lokalen master pushen