Problem mit String reversieren

  • Themenstarter Themenstarter Marcel 80
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

Marcel 80

Gast
Ich habe folgendes Problem: Wie kann ich diesen Code umwandeln, dass nur ein einzeles Wort in der Reihenfolge (z.B. gras zu sarg) getauscht wird und nicht mehrere ganze Wörter??? Kann mir jemand helfen?

Code:
import java.util.*;

class Satzinvertierer
{
    public static String invertiereSatz(String Eingabe)
    {
        Stack Wortestapel = new Stack();
        StringTokenizer einTokenizer = new StringTokenizer(Eingabe,"");
        String Ausgabe = "";

        while (einTokenizer.hasMoreTokens())
        {
            Wortestapel.push(einTokenizer.nextToken());
        }

        while (!Wortestapel.empty())
        {
            Ausgabe = Ausgabe + " " +(String)Wortestapel.pop();
        }

        return Ausgabe;
    }
}
 
Es wird der String eingabe umsortiert, folglich musst du dafür sorgen, dass der nur aus einem Wort besteht...im übrigen schreibt man Variablennamen klein...
 
und wie mach ich das? den variablennamen werd ich noch ändern...
 
Du benötigst zuerst einmal die Wörter einzeln am Besten in einem Array. Das schaffst du mit String#split(" "); Umdrehen kannst du es dann mit einem StringBuilder/StringBuffer und der Methode reverse();.
 
Das sähe dann so aus?!
Ich fange gerade mit dem Programmieren an und hab das Beispiel mal aufgegriffen (Sorry 😳 )

Code:
import java.util.*; 

class SatzInvertierer { 
  public static String invertiereSatz(String eingabe) { 
    String[] words=eingabe.split(" ");
    String ausgabe = ""; 
    for (int i=0; i<words.length; i++) {
      ausgabe=ausgabe+invertiereWort(words[i])+" ";
    }	
    return ausgabe; 
  } 
  public static String invertiereWort(String wort) {
    return new StringBuffer(""+wort).reverse().toString();
  }	
  public static void main(String args[]) {
    String s="Dies ist mein Satz";
    System.out.println(s+"\n"+invertiereSatz(s));
  }
}
 
Dieses Beispiel funktioniert. Ich versuche aber immer noch eine Lösung für das obere Beispiel zu finden...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben