Dekomprimieren von Zeichenketten!

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dekomprimieren von Zeichenketten!

    Hi Leute!
    bin recht neu hier und hab grade erst diesen teil des Forums entdeckt und da ich ein Problem habe bei einem Java - Programm das ich schreiben sollte frage ich einfach hier rein.

    Die Aufgabe die mir bei diesem Programm noch fehlt is folgende:

    eine zuvor, vom Benutzer, eingegebene Zeichenkette wie z.b: 3a4b3d7f9y soll umgewandelt werden in AAABBBBDDDFFFFFFFYYYYYYYYY und ausgegeben werden.
    Das Komprimieren der Zeichenkette hab ich schon (also AAABBSS in 3A2B2S) aber ich steh jetzt komplett neben mir und schaff das Dekomprimieren nicht.

    is eigentlich ein sehr leichtes Programm. Ist ja erst mein sechstes Prog das ich schreib. Also wenn mir wer helfen könnte wäre das natürlich sehr sehr nett.

    grüße!

    edit: hab mich beim Präfix vertan :/
    geht natürlich um Java!
    edit²: thx MeX fürs ändern! :)
  • Hallo Grinch,

    also ohne jetzt irgendwelche große Ahnung von Java zu haben - ich habe nämlich de facto keine - würde ich einfach mal vorschlagen immer die Position vor dem entsprechenden Buchstaben anzugucken (jetzt weiß ich nicht, ob die Zahl auch 2-stellig sein darf) und sooft den Buchstaben in einer Zählschleife an den bereits existierenden, "dekomprimierten" String heranzuwerfen. Da ich mir über die genauen Rahmenbedinungen nicht im Klaren bin, kann es sein, dass es mehr oder weniger schwierig wird.

    Hoffentlich konnte ich dir wenigstens ein wenig helfen, Palad :bing:
  • Japp, da muss ich meinem Vorredner rechtgeben.
    Es wäre recht entscheidend für den Aufwand zu wissen, ob die Zahlen alle einstellig sind, oder ob die beliebig gross sein können. Sprich z.b. 850A2110B etc.
    Sind sie nur einstellig ist die Lösung recht einfach und wurde eigentlich auch schon genannt :)
  • naja auch wenn die Zahlen nicht nur einstellig sind ist es nicht so schlimm!
    ( mit parseInt die eingelesenen Ziffern zu einer Integer umwandeln!)
    theoretisch habe ich das Beispiel ja gelöst.
    Es geht nur um die genauen befehle eigentlich aber das wird mir hier wohl keiner genau beschreiben können weils doch x - verschiedene Lösungen für solche Sachen gibt.
    aber sonst hattet ihr recht ja...
    die Stellen nach der Reihe einlesen lassen und falls zwei Ziffern also
    <A || Z< (so ungefähr) einfach mit parseInt umwandeln.
    Aber ich schaffs trotzdem nicht den src richtig zu schreiben!

    naja danke auf jeden Fall an alle!
  • Naja wie gesagt, für einstellige Arscheinfach ^^

    PHP-Quellcode

    1. public class Test {
    2. public static void main(String args[]) {
    3. String Tstring = "3A2B2S";
    4. int anz = 0;
    5. String ausgabe = "";
    6. while(Tstring.length() > 0){
    7. String sub = Tstring.substring(0, 1);
    8. try {
    9. anz = Integer.parseInt(sub);
    10. } catch (NumberFormatException e) {
    11. }
    12. Tstring = Tstring.substring(1,Tstring.length());
    13. String buchstabe = Tstring.substring(0, 1);
    14. Tstring = Tstring.substring(1,Tstring.length());
    15. for(int i = 0; i < anz; i++){
    16. ausgabe = ausgabe + buchstabe;
    17. }
    18. }
    19. System.out.println(ausgabe);
    20. }
    21. }
    Alles anzeigen


    Für größere und unterschiedliche Zahlen etwas kniffliger, aber auch machbar.
    Das darfste dann gerne selbst probieren :)
    Ajo sorry das ich nicht kommentiert habe, aber hat grade keine Lust :D