Skip to main content

So einfach lassen sich Java Strings umkehren

Kennst du noch das Lied „ANNA“ von Freundeskreis?

Da hieß es:

Du bist von hinten, wie von vorne A-N-N-A.

Solche Namen oder Wörter, welche von hinten nach vorne gelesen – die gleiche Bedeutung haben, nennt man Palindrome.

Anna, Ehe oder Ebbe sind recht kurze Palindrome.
Aber auch längere zusammengesetzte Palindrome kennt die deutsche Sprache:

  • Regallager ist so ein zusammengesetztes Palindrom.
  • Und da das Regallager aus den Wörtern Regal und Lager besteht und beide Wörter eigenständige Palindrome sind – kannst du diese auch neu zusammensetzen.
  • Somit sind Regallager und auch das Lagerregal komplett von hinten nach vorn lesbar – und ergeben die gleiche Bedeutung.

Übrigens…..
Das längste deutsche Palindrom – Reliefpfeiler – schaffte es sogar in das Guinness Buch der Rekorde.

Was erwartet dich in diesem Beitrag?
Ich möchte dir zeigen, wie du Java Zeichenketten umkehren kannst.
Also wie ein normaler Java String rückwärts dargestellt werden kann.

Dazu….

  • Schauen wir uns ein paar Grundlagen zu Strings an,
  • basteln eine for-Schleife, welche einen String durchlaufen und auslesen soll
  • und schließlich kehren wir dann die For-Schleife einfach um.

Na Bock drauf?
Dann lass uns ein paar Java Strings umdrehen.

So lassen sich Java Strings zeichenweise verarbeiten

Mit der String-Methode charAt() lässt sich jedes Zeichen einer Zeichenkette herauslesen.

Die Methode erwartet aber einen Index, als Argument.
Und anhand dieses Positionsindexes (hier 0 und 4) wird das entsprechende Zeichen zurückgegeben.

public class JavaStringVerarbeiten {
	public static void main(String[] args) {
		String textEins = "Hallo dies ist ein Test!";

		Character teilEins = textEins.charAt(0);// Speichern des Teilstrings - Position 0 = "H"
		Character teilZwei = textEins.charAt(4);// Speichern des Teilstrings - Position 4 ="o"

	}
}

Wichtig dabei ist…..

  • Wie bei jeder String-Methode, bleibt der ursprüngliche String unverändert.
  • Diesen Teilstring bzw. das einzelne Zeichen kannst du dir in einer Variablen speichern und dann später auslesen lassen.
  • Da aber die charAt()-Methode als Rückgabewert einen Characterdatentypen liefert, musst du den Teilstring auch in einer Variable vom Datentyp Character speichern.
  • Und den gespeicherten Wert aus diesen beiden neuen Char-Variablen, kannst du dann separat auslesen und als Bildschirmausgabe zurückgeben lassen.
public class JavaStringVerarbeiten {
	public static void main(String[] args) {
		String textEins = "Hallo dies ist ein Test!";

		Character teilEins = textEins.charAt(0);// Speichern des Teilstrings - Position 0 = "H"
		Character teilZwei = textEins.charAt(4);// Speichern des Teilstrings - Position 4 ="o"

		System.out.println(teilEins);// Bildschirmausgabe H
		System.out.println(teilZwei);// Bildschirmausgabe o
	}
}

Alternativ kannst du die Methodenrückgabe direkt in die Bildschirmausgabe einbetten.

public class JavaStringVerarbeiten {
	public static void main(String[] args) {
		String textEins = "Hallo dies ist ein Test!";
		
		System.out.println(textEins.charAt(0));// Bildschirmausgabe H
		System.out.println(textEins.charAt(4));// Bildschirmausgabe o
	}
}

Bedenke….
Die Teilstrings sind somit nirgendwo gespeichert und lassen sich somit auch nicht weiter verwenden.
Für unsere Zwecke reicht es aber vorerst aus.

Jeder Java String hat eine Länge.

Und dieser lässt sich anhand der Variable „length“ bestimmen.

Denn….
Sobald du einen String in einem Java Programm anlegst, steht dir automatisch diese Instanzvariable aus der String-Klasse zur Verfügung.
Aufgerufen wird diese Variable, wie jede Intanzvariable, direkt an der Referenzvariablen.
In diesem Beispiel „textEins“-Punkt-length.

public class JavaStringVerarbeiten {
	public static void main(String[] args) {
		String textEins = "Hallo dies ist ein Test!";
		
		System.out.println(textEins.charAt(0));// Bildschirmausgabe H
		System.out.println(textEins.charAt(4));// Bildschirmausgabe o
		
		int laenge = textEins.length();
		System.out.println(laenge);//Länge = 24 Zeichen
	}
}

Auch diesen Wert könntest du in einer Variablen speichern und dann als Bildschirmausgabe zurückgeben lassen.
In unserem Fall hat der String – „Hallo dies ist ein Test!“ – eine Länge von 24 Zeichen.

Und auch hier….
Brauchst du den Wert eigentlich nicht zwischenspeichern.
Sondern kannst dir diesen als Bildschirmausgabe gleich anzeigen lassen.

public class JavaStringVerarbeiten {
	public static void main(String[] args) {
		String textEins = "Hallo dies ist ein Test!";
		
		System.out.println(textEins.charAt(0));// Bildschirmausgabe H
		System.out.println(textEins.charAt(4));// Bildschirmausgabe o
		
		System.out.println(textEins.length());//Länge = 24 Zeichen
	}
}

Okay so weit so gut.
Bis hierher sind es lediglich die gedanklichen Grundlagen.

Du weißt jetzt:

  1. Wie du an die Länge des Strings kommst.
  2. Und du kennst eine Möglichkeit dir jedes Zeichen des Java Strings separat ausgeben zu lassen.

Was jetzt fehlt – ist eine Schleife.
Diese beginnt bei der Position 0, also beim „H“ und durchläuft den kompletten String bis zur Endposition – length() = 24.

So kannst du den String mit einer for-Schleife durchlaufen und auslesen.

BÄÄM – Hier ist die Schleife. 🙂

public class JavaStringVerarbeiten {
	public static void main(String[] args) {
		String textEins = "Hallo dies ist ein Test!";
		
		for (int i = 0; i < textEins.length(); i ++ ){
			System.out.println(textEins.charAt(i));
		}
	}
}

Wie schon gesagt:

  • Die Schleife beginnt beim Index 0 (int i = 0) und durchläuft den kompletten String.
  • Und zwar solange bis i < textEins.lenghth.
  • Bei jedem Durchlauf wird i erhöht.

Probiere es aus und klicke auf RUN!
Und läuft?

Problem ist nur, dass der Text nicht rückwärts durchlaufen wird.
Jetzt lass und den Java String umkehren.

So kannst du den Java String von hinten nach vorn umkehren.

Bis jetzt waren alles nur Grundlagen.
Die for-Schleife ist aber soweit in Ordnung.
Aber im Schleifenkopf müsstest du jetzt einige Dinge abändern.

  • Aus der Startposition i = 0 wird i = textEins.length().
    Denn du fängst von hinten an.
  • Die Schleife würde somit bei 24 starten und bis zur Stelle 0 laufen.
    Dies wären 25 Positionen und somit eine zu viel.
    Deshalb lautet der Startwert i = textEins.length() - 1 .
  • Aus der Bedingung i < textEins.lenghth wird i > = 0.
    Denn die Schleife soll an der Position 0 aussteigen.
  • Und natürlich darf i nicht mehr erhöht, sondern muss erniedrigt werden.
    Aus i ++ wird i--
public class JavaStringVerarbeiten {
	public static void main(String[] args) {
		String textEins = "Hallo dies ist ein Test!";
		
		for (int i = textEins.length()-1; i >= 0; i -- ){
			System.out.println(textEins.charAt(i));
		}
	}
}

Und läuft?

Was noch stört ist der doofe Zeilenumbruch nach jedem Zeichen.

Also mach aus der println-Anweisung im Rumpf - eine print-Anweisung.
Und fertig!

public class JavaStringVerarbeiten {
	public static void main(String[] args) {
		String textEins = "Hallo dies ist ein Test!";
		
		for (int i = textEins.length()-1; i >= 0; i -- ){
			System.out.print(textEins.charAt(i));
		}
	}
}

Cool, oder?

Zusammenfassung:

  • Mit der Methode charAt(), welche die String Klasse bereitstellt – kannst du die einzelnen Zeichen einer Zeichenkette extrahieren.
  • Mit einer for-Schleife kannst du das Ganze dann automatisieren.
  • Um die Java Strings dann noch umkehren zu können, musst du nur noch die for-Schleife von hinten nach vorne laufen lassen.

Ähnliche Beiträge

Java Übung 24 – So kannst du Kommazahlen runden

Java Übung runden

In dieser Java Übung möchte ich mit dir Zahlen runden. Ich bitte dich deshalb: Erstelle eine Klasse „RundenUebung“. Lege dann eine statische Methode rundeZahl() an. Diese erwartet zwei Parameter. Parameter 1 ist die Kommazahl, welche gerundet werden soll. Als zweiten Parameter wird eine ganze Zahl übergeben, welche die Nachkommastelle – bis auf welche letztlich gerundet […]

So kannst du Instanzen in Java Klassen zählen

Wie kannst du die Instanzen der Java Klassen zählen? Ganz einfach. Am besten ist es, wir bleiben beim Einführungsbeispiel zu den Java Klassen. Und ich wähle die Klasse „Monster“. Um es einfach zu halten, soll auch der Programmstart durch die Klasse erfolgen. Die Klasse bietet somit eine main-Methode an.

Warum Java Kommentare immer ein Mittel der Kommunikation sind

Java Kommentare Kommunikation

Kennst Du die Bücherreihe „Miteinander reden“ von Schulz von Thun? Falls Du an der Uni warst oder bist, gehört dieses Buch zur Standardlektüre im Fach Schlüsselkompetenz. Denn ein Java Entwickler, welcher im Team arbeitet, muss klar und deutlich kommunizieren können. Und klar und deutlich heißt nicht, dass die Aussprache Deiner Worte verständlich sein soll. Nein […]

Zwei smarte Möglichkeiten eine Java Zufallszahl zu erzeugen

Java Zufallszahl

Java Zufallszahl – Wieso? In der Java Programmierung benötigst du immer wieder einmal Zufallszahlen. Du möchtest deine Software mit Daten testen und dir keine Zahlen ausdenken. Du benötigst Stichproben, welche ein reales Verhalten simulieren. Du hast ein Spiel entworfen und die Akteure sollen mit zufälligen aber unterschiedlichen Größen, Rüstungsleveln usw. auftreten. Die Einsatzmöglichkeiten für Zufallszahlen […]

10 ganz nützlichen Feature der Klasse Java Math

In diesem Beitrag geht es um eine spezielle Java Klasse. Die Klasse nennt sich Java Math. Diese ist in der Standardbibliothek von Java enthalten. Warum solltest du diese Klasse kennen? Die Math Klasse bietet dir einen Menge Methoden an, welche zur Berechnung von mathematischen Gleichungen ganz hilfreich sind. Aber auch für Nichtmathematiker ist etwas dabei. […]

Den Java Vererbungsbaum nach dem Ist-Es-Prinzip richtig entwerfen

Java Vererbungsbaum

Vererbungsbaum in Java – klingt erstmal komisch. Dennoch wird dies so bezeichnet. Gemeint sind damit – die einzelnen Hierarchiestufen oder Vererbungsebenen – von der Superklasse bis runter zu den Kindklassen. Wie sieht das nun konkret aus? Vererbung bedeutet: Du definierst einen allgemeinen Typen – zB. Möbel Und dann implementierst du eine Unterklasse, welche die Oberklasse […]

Du bekommst was du vereinbarst – Die Rückgabewerte von Java Methoden

Java Methoden Rückgabetypen

Was du vereinbarst, das bekommst du zurück. Ach wäre es schön, wenn alles im Leben so funktionieren würde. Aber zum Glück funktioniert dieses Prinzip bei deinen Java Methoden. Denn du kannst den Rückgabetypen im Methodenkopf vereinbaren. Doch bevor ich dir zeige, wie du den Rückgabetypen anlegen kannst…. Lass mich dir zeigen, wofür du den Kram […]

So kannst du in den Java Klassen Attribute anlegen

Java Klassen Attribute

Die bisherigen Java Klassen in unserem Einführungsbeispiel besitzen noch keine Attribute. Das ändern wir und legen diese jetzt an. In diesem Beitrag erfährst du: Warum Variablen in deinen Klassen eine entscheidende Rolle spielen. Was es bedeutet eine Variable zu deklarieren. Wo du Attribute in den Java Klassen anlegen darfst und wo nicht. Wie du durch […]