Zeichen im String verschiebe

Taskiz

Mitglied
Servus Leute,

ich soll die Buchstaben eines String "Haus" um den Wert 3 verschieben, sodass der Computer am Ende "ausH" zurück gibt. Leider hab ich keine Ahnung wie ich das machen soll. Kann mir jemand nur in Worten beschreiben wie der Code auszusehen hat, ich versuch's dann selbst umzusetzen.

Grüße.
 

mihe7

Top Contributor
Nimm mal ein Blatt Papier, schreib "Haus" drauf und schau mal, was Du tun müsstest, um das Wort um eine Stelle zu verschieben.
 

Taskiz

Mitglied
Also ich hatte folgende Ursprungsidee

Java:
public class Verschiebung {

public static void main(String[] args) {
   
    String sentence = "Haus";
    int wert = 3;
   
        if (wert==0) {
           
            System.out.println(sentence);
        }

        for(int i =0; i<sentence.length()-1; i++) {
   
               char x = sentence.charAt(i+sentence.length()-wert);
             
            System.out.println(x);

        }
   
    }

}

Da bekomm ich jetzt "a u s" heraus, ich weiß nur nicht ganz wie ich "H" an die letzte Stelle bekommen
 

fhoffmann

Top Contributor
Du hast einen String sentence.
Mit Hilfe der Methode substring der Klasse String kannst du die letzten drei Buchstaben herausfinden und ebenso alles, was davorsteht. Diese beiden Teile musst du nur vertauschen.
 

Taskiz

Mitglied
Ich glaub ich hab's nur wird der Code von links nach rechts und nicht wie ursprünglich geplant von rechts nach links verschoben

Java:
public class Verschiebung {

public static void main(String[] args) {
    
    String sentence = "Haus";
    int wert = 3;
            
            if (wert==0) {
                
                System.out.println(sentence);
            }
            
            else if (wert > sentence.length()) {
                
                System.out.println("Eingabefehler");
            }
            
            else {   
                
                String s2 = sentence.substring(0, wert);
                sentence = sentence.substring(wert) + s2;
            
            
            System.out.println(sentence);
            
            }
    }
}

Ich erhalte "sHau", muss nur noch herausfinden, wie ich die Richtung noch ändern kann.
 

fhoffmann

Top Contributor
Hast du es schon herausgefunden?

Ansonsten kannst du mit String.length() herausfinden, wie lang der Text ist, und dann die letzten drei Zeichen hearaussuchen.
 

KonradN

Super-Moderator
Mitarbeiter
Der Thread ist sehr alt - da wirst Du so vermutlich keine Antwort mehr bekommen. Daher wäre es ggf. ratsam, einfach einen eigenen Thread zu eröffnen und darin zu beschreiben, wo denn das Problem genau ist bzw. was Du denn schon hast.
 

no-cgpt

Mitglied
Kannst du mir auch sagen, wie du es gemacht hast. Ich habe nämlich das selbe Problem. Also ich muss es von rechts nach links schieben.
Das Problem ist hierbei ganz einfach, dass n-mal ALLE Elemente um 1 verschoben werden müssen.

Es gibt Algorithmen, die das anders lösen können, aber diese sind extrem kompliziert und nicht für Anfänger zu empfehlen.
 

KonradN

Super-Moderator
Mitarbeiter
Das Problem ist hierbei ganz einfach, dass n-mal ALLE Elemente um 1 verschoben werden müssen.

Es gibt Algorithmen, die das anders lösen können, aber diese sind extrem kompliziert und nicht für Anfänger zu empfehlen.
Öhm, kannst Du diese Position erläutern?

Es ist unnötig, mehrfach um 1 zu verschieben. Der Aufbau ist ja immer gleich:

Man unterteilt den String in zwei Teilstrings und stellt diese in umgedrehter Reihenfolge aneinander.
Bei einer Drehrichtung ist die Trennstelle gleich der gewünschte Anzahl der Verschiebungen
In der anderen Richtung ist das aber leider nicht der Fall.

Aber man hat ja die Länge des Strings ... und da kann man dann ja was abziehen. Das muss man sich jetzt nicht einmal im Detail über die Dokumentation der Methode substring herausfinden sondern man kann es einfach mal testen:

Code:
                String s2 = sentence.substring(0, wert);
                sentence = sentence.substring(wert) + s2;
war ja der Code, den der TE schon herausgefunden hat.

Da einfach mal ein sentence und ein wert vorgeben. Und dann schauen, was raus kommt. Bei "Hallo" kann man für Wert diverse Werte vorgeben:
0 -> Hallo
1 -> alloH
2 -> lloHa
3 -> loHal
4-> lHall
5 -> Hallo

Die Länge war 5 Zeichen und nun kann ich je nach Richtung doch eine einfache Regel erkennen:
In die eine Richtung ist es einfach die Anzahl der Stellen, die verschoben werden soll.
In die andere Richtung hast Du 5-Anzahl und 5 ist ja die Länge.

Der Algorithmus bleibt also gleich, nur die Position des Schnittes wird einmal angepasst.

@d_43 Ich denke, damit hast Du Deinen Algorithmus aus, oder?
 

KonradN

Super-Moderator
Mitarbeiter
Ja, findest du das für Anfänger zu empfehlen:
Nein, so unleserlichen Code würde ich jedem um die Ohren hauen. Wieso Du meinst, Code immer so extrem unleserlich und überkompliziert schreiben musst, werden wir hier wohl auch nie verstehen. Und was hat dein Code mit der Aufgabenstellung zu tun?

Ich sitze hier bei Deinen Posts immer da und frage mich: Was willst Du mir oder dem TE sagen? Wem glaubst Du, helfen Deine Aussagen?

Der Algorithmus, den der TE schreiben soll, ist sehr einfach. Da ist nichts komplexes bei. Aus dem bereits vorhandenen Code lässt sich dies einfach bauen. Der Algorithmus lässt sich einfach erläutern und auch herleiten.

Wenn man String.substring nicht nutzen dürfte, dann wäre die Frage: was darf genutzt werden? Und dann wäre es auch nicht deutlich komplizierter. Dann hat man halt eine Schleife, die Zeichen einzelnd kopiert. Oder wenn ein modulo Operator zu kompliziert scheint, dann hat man halt zwei Schleifen.

Aber all das rechtfertigt keine Angriffe a.la.:
Heute hast du aber wieder deinen 40-%-Tag. ;) Oder anders: Deine Antwort ist für die Tonne.
Wenn Du da irgendwelche Argumente im Kontext des Threades hättest, dann würde ich so ein Urteil evtl. einsehen. Aber so ist das doch nur herumtrollen. Der kleine Tobias will aus dem Bällespieleparadies abgeholt werden?
 

d_43

Neues Mitglied
Öhm, kannst Du diese Position erläutern?

Es ist unnötig, mehrfach um 1 zu verschieben. Der Aufbau ist ja immer gleich:

Man unterteilt den String in zwei Teilstrings und stellt diese in umgedrehter Reihenfolge aneinander.
Bei einer Drehrichtung ist die Trennstelle gleich der gewünschte Anzahl der Verschiebungen
In der anderen Richtung ist das aber leider nicht der Fall.

Aber man hat ja die Länge des Strings ... und da kann man dann ja was abziehen. Das muss man sich jetzt nicht einmal im Detail über die Dokumentation der Methode substring herausfinden sondern man kann es einfach mal testen:

Code:
                String s2 = sentence.substring(0, wert);
                sentence = sentence.substring(wert) + s2;
war ja der Code, den der TE schon herausgefunden hat.

Da einfach mal ein sentence und ein wert vorgeben. Und dann schauen, was raus kommt. Bei "Hallo" kann man für Wert diverse Werte vorgeben:
0 -> Hallo
1 -> alloH
2 -> lloHa
3 -> loHal
4-> lHall
5 -> Hallo

Die Länge war 5 Zeichen und nun kann ich je nach Richtung doch eine einfache Regel erkennen:
In die eine Richtung ist es einfach die Anzahl der Stellen, die verschoben werden soll.
In die andere Richtung hast Du 5-Anzahl und 5 ist ja die Länge.

Der Algorithmus bleibt also gleich, nur die Position des Schnittes wird einmal angepasst.

@d_43 Ich denke, damit hast Du Deinen Algorithmus aus, oder?
Ja Dankeschön hilft mir sehr :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
J Zeichen im String zählen Java Basics - Anfänger-Themen 3
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
L String auf bestimmte zeichen untersuchen Java Basics - Anfänger-Themen 9
D gebe string zurück mit von bis bestimmtes Zeichen Java Basics - Anfänger-Themen 4
Y String auf allgemein Zeichen untersuchen Java Basics - Anfänger-Themen 3
S String trennen nach beliebigen Zeichen Java Basics - Anfänger-Themen 3
C Zeichen im String bis zu bestimmter Stelle entfernen Java Basics - Anfänger-Themen 6
S Das Anführungszeichen(") Zeichen in einen String setzen Java Basics - Anfänger-Themen 1
B zeichen eines String mit der kleinsten Frequenz zurückgeben Java Basics - Anfänger-Themen 25
m0n4ch Variablen String auf ungültige Zeichen überprüfen Java Basics - Anfänger-Themen 13
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
R Zeichen in String vergleichen Java Basics - Anfänger-Themen 75
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
I String abschneiden erste und letzte Zeichen Java Basics - Anfänger-Themen 3
S Leerzeichen zwischen zwei Zeichen im String entfernen Java Basics - Anfänger-Themen 19
F In einem String nach einem String suchen und Zeichen danach ausgeben Java Basics - Anfänger-Themen 6
Q Erste Schritte Zeichen in String farblich hervorheben Java Basics - Anfänger-Themen 4
P String Zeichen zuweisen Java Basics - Anfänger-Themen 3
P Methode die String auf Zeichen überprüft Java Basics - Anfänger-Themen 2
W String von hinten alle drei Zeichen abschneiden und in umgekehrter Reihenfolge ausgeben. Java Basics - Anfänger-Themen 9
J String Ausgabe nicht-leerer Zeichen nicht korrekt Java Basics - Anfänger-Themen 10
I Zeichen aus String ziehen Java Basics - Anfänger-Themen 3
J Zeichen aus String Array lesen Java Basics - Anfänger-Themen 13
T String - kleinstes Zeichen bestimmen Java Basics - Anfänger-Themen 3
B String der eigentlich eine Ansammlung von HEX zeichen ist in datei schreiben in Hex Java Basics - Anfänger-Themen 8
C String auf bestimmtes Zeichen prüfen Java Basics - Anfänger-Themen 7
G String mit verschiedenen Zeichen analysieren Java Basics - Anfänger-Themen 5
S String mit ASCII/HTML Zeichen darstellen Java Basics - Anfänger-Themen 10
J Ascii Zeichen von einem String umwandeln und ausgeben Java Basics - Anfänger-Themen 11
A einzelne Zeichen aus String auslesen Java Basics - Anfänger-Themen 3
J Aus einem String unbekannte zeichen filtern Java Basics - Anfänger-Themen 11
M zeichen aus string entfernen Java Basics - Anfänger-Themen 2
T Erstes Zeichen aus String löschen Java Basics - Anfänger-Themen 8
S Zeichen in einem String hochstellen? Java Basics - Anfänger-Themen 9
M Erstes Zeichen in einem String in Großbuchstaben wandeln Java Basics - Anfänger-Themen 3
D prüfen ob string nur ascii zeichen enthält Java Basics - Anfänger-Themen 7
vandread Kann in einer String-ArrayList keine Zeichen anhängen Java Basics - Anfänger-Themen 5
E Leerstring bzw String mit x Zeichen erzeugen? Java Basics - Anfänger-Themen 13
B OOP String auf bestimmte Zeichen abfragen Java Basics - Anfänger-Themen 4
I String ohne Zeichen zerlegen lassen Java Basics - Anfänger-Themen 5
E Zeichen in String löschen Java Basics - Anfänger-Themen 15
S String Split ohne Zeichen abzuschneiden Java Basics - Anfänger-Themen 7
Povlsen84 String - Zeichen am Anfang entfernen Java Basics - Anfänger-Themen 11
S Zeichen aus String rausfiltern Java Basics - Anfänger-Themen 4
G Enter-Zeichen aus String ersetzen Java Basics - Anfänger-Themen 5
J String nur mit ASCII-Zeichen Java Basics - Anfänger-Themen 4
S String auf unzulässige Zeichen überprüfen Java Basics - Anfänger-Themen 4
D Zeichen im String ändern -> Fehlersuche Java Basics - Anfänger-Themen 7
G String auf Zeichen überprüfen Java Basics - Anfänger-Themen 6
G HTML Zeichen aus String entfernen? Java Basics - Anfänger-Themen 5
G String vergleichen:Platzhalter für bel. Zeichen Java Basics - Anfänger-Themen 5
M bestimmte Zeichen in String eliminieren Java Basics - Anfänger-Themen 2
G Wieviele Zeichen kann ein String maximal speichern? Java Basics - Anfänger-Themen 3
O String in array einlesen alle x zeichen Java Basics - Anfänger-Themen 15
S Anzahl von Zeichen in einem String suchen und zählen Java Basics - Anfänger-Themen 1
G String ab definiertem Zeichen abschneiden Java Basics - Anfänger-Themen 4
U String um zeichen ergänzen Java Basics - Anfänger-Themen 24
M aus String extrahieren bis zu gewissem Zeichen Java Basics - Anfänger-Themen 7
G String zeichen richtig untreinander Java Basics - Anfänger-Themen 2
G wie mehrere Zeichen in string löschen Java Basics - Anfänger-Themen 3
L String darf nur spezielle Zeichen enthalten Java Basics - Anfänger-Themen 6
H text string alle 100 zeichen in ein 1D array einlesen ? Java Basics - Anfänger-Themen 8
B nach Zeichen suchen dass im string mehrmals vorkommt Java Basics - Anfänger-Themen 3
M String nach einer bestimmten Anzahl von Zeichen trennen Java Basics - Anfänger-Themen 2
M Aus einem String bestimmte zeichen auslesen und ausgeben Java Basics - Anfänger-Themen 8
G die ersten Zeichen eines Strings Vergleichen mit String Java Basics - Anfänger-Themen 6
W String mit Vorgegebenen Zeichen Java Basics - Anfänger-Themen 3
D String kann zeichen nicht lesen Java Basics - Anfänger-Themen 3
D String, erste zeichen löschen Java Basics - Anfänger-Themen 6
D String/StringBuffer mit Zeichen einer Sorte füllen Java Basics - Anfänger-Themen 14
J String - einzelne Zeichen sortieren Java Basics - Anfänger-Themen 14
A ein string zeichen für zeichen lesen Java Basics - Anfänger-Themen 3
G Zeichen an bestimmter Stelle im String einfügen. Java Basics - Anfänger-Themen 4
B String auf bestimmtes Zeichen überprüfen Java Basics - Anfänger-Themen 7
A String um 1 Zeichen kürzen ? Java Basics - Anfänger-Themen 6
M Ein bestimmtes Zeichen in einem String ändern Java Basics - Anfänger-Themen 4
F Zeichen in String ersetzen mit 1.3 Java Basics - Anfänger-Themen 9
T String mit dem Hexwert in normales Zeichen umwandeln? Java Basics - Anfänger-Themen 6
G letztes Zeichen aus einem String Java Basics - Anfänger-Themen 2
G String auf Länge und Zeichen überprüfen Java Basics - Anfänger-Themen 10
R Zeichen von String zählen Java Basics - Anfänger-Themen 5
A String Zeichen löschen in einer bestimmten Reihenfolge Java Basics - Anfänger-Themen 25
N String nach Zeichen ersetzen Java Basics - Anfänger-Themen 6
G String: nach 3. Zeichen char ersetzen Java Basics - Anfänger-Themen 3
O nur bestimmte Zeichen in einem String zählen. Java Basics - Anfänger-Themen 1
Dilandau ascii code von zeichen in string ermitteln? Java Basics - Anfänger-Themen 9
J Quelltext mit komischen griechischen Zeichen Java Basics - Anfänger-Themen 4
T or zeichen Java Basics - Anfänger-Themen 2
L 4 stelliges Passwort aus bestimmten Zeichen. Java Basics - Anfänger-Themen 27
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
S Was bedeutet das Zeichen := Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben