R
rennigeBavaJ
Gast
Hallo,
ich habe die Aufgabe, einen String zu invertieren. Dafür steht mir die Klasse Stack zur Verfügung.
Weitere Methoden sind:
String concat(String) //Verknüpfung zweier Strings
String substring() //liefert einen Teilstring
Ich hatte vor, den eingegeben Text erst auf einen Stack zu packen. Dabei werden die einzelnen Buchstaben durch die Methode concat 'getrennt'.
Jetzt hab ich mir vorgestellt, man könnte die Buchstaben mit top() abrufen, einem neuen String 'anhängen' (mit concat()) und den Buchstaben dann mit pop() vom Stack entfernen.
So sehen bis jetzt meine Anfänge aus:
Ich bin für jede Hilfe dankbar!
ich habe die Aufgabe, einen String zu invertieren. Dafür steht mir die Klasse Stack zur Verfügung.
Weitere Methoden sind:
String concat(String) //Verknüpfung zweier Strings
String substring() //liefert einen Teilstring
Ich hatte vor, den eingegeben Text erst auf einen Stack zu packen. Dabei werden die einzelnen Buchstaben durch die Methode concat 'getrennt'.
Jetzt hab ich mir vorgestellt, man könnte die Buchstaben mit top() abrufen, einem neuen String 'anhängen' (mit concat()) und den Buchstaben dann mit pop() vom Stack entfernen.
So sehen bis jetzt meine Anfänge aus:
Java:
public class StringUmkehren{
Stack s;
String ut = ""; //ut = umgekehrter Text
public String StringInvertion(String text) {
s = new Stack();
for(int i=0; i <= text.length()-1; i++){
s.push(text.substring(i,i++));
}
}
}
Java:
//package abiturklassen.listenklassen;
/**
* <p>Materialien zu den zentralen
* Abiturpruefungen im Fach Informatik ab 2012 in
* Nordrhein-Westfalen.</p>
* <p>Klasse Stack</p>
* <p>Objekte der Klasse Stack (Keller, Stapel) verwalten beliebige
* Objekte nach dem Last-In-First-Out-Prinzip, d.h. das zuletzt
* abgelegte Objekt wird als erstes wieder entnommen.</p>
*
* <p>NW-Arbeitsgruppe: Materialentwicklung zum Zentralabitur im Fach Informatik</p>
*
* @version 2010-10-20
*/
public class Stack {
private Node head;
// Node
private class Node {
private Object content = null;
private Node nextNode = null;
public Node(Object pObject) {
content = pObject;
nextNode = null;
}
public void setNext(Node pNext) {
nextNode = pNext;
}
public Node getNext() {
return nextNode;
}
public Object getContent() {
return content;
}
} // Ende Node
// Stack
/**
* Ein leerer Stapel wird erzeugt.
*/
public Stack() {
head = null;
}
/**
* Die Anfrage liefert den Wert true, wenn der Stapel
* keine Objekte enthaelt, sonst liefert sie den Wert false.
* @return true, falls der Stapel leer ist, sonst false.
*/
public boolean isEmpty() {
return (head == null);
}
/**
* Das Objekt pObject wird oben auf den Stapel gelegt.
* Falls pObject gleich null ist, bleibt der Stapel unveraendert.
* @param pObject ist das einzufuegende Objekt.
*/
public void push(Object pObject) {
if (pObject != null) {
Node lNode = new Node(pObject);
lNode.setNext(head);
head=lNode;
}
}
/**
* Das zuletzt eingefuegte Objekt wird von dem Stapel entfernt.
* Falls der Stapel leer ist, bleibt er unveraendert.
*/
public void pop() {
if (!isEmpty())
head = head.getNext();
}
/**
* Die Anfrage liefert das oberste Stapelobjekt.
* Der Stapel bleibt unveraendert.
* Falls der Stapel leer ist, wird null zurueck gegeben.
* @return Inhaltsobjekt
*/
public Object top() {
if (!this.isEmpty())
return head.getContent();
else
return null;
}
}
Ich bin für jede Hilfe dankbar!