tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
24
ZUGRIFFE
5727
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    tyronm tyronm ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    18
    Hi,
    eine Anfängerfrage.
    ich möchte gerne eine Zeichenkette wie eine Zahl (Decimalformat) formatieren.
    Also z.B. schon 10 Stellen vorgeben für Zeicehnkette mit der länge 4 nach dem Motto

    "------Java"

    Vielen Dank für eure Tipps
     

  2. #2
    MiMi MiMi ist offline Mitglied Smaragd
    Registriert seit
    Sep 2007
    Beiträge
    1.177
    Dann schreib doch mal was du vorhast, weil ich versteh diene Frage nicht so ganz. Und vielleicht solltest du uns deinen Code zeigen, wo du net weiterkommst.
     

  3. #3
    tyronm tyronm ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    18
    Hi,
    Also
    z.B. bei zahlen kann man es ja so machen
    DecimalFormat df = new DecimalFormat("000000000");
    df.format(6);
    Ausgabe -> 000000006

    das gleiche wollte ich für eine Zeichenkette
    String s = "Java";

    Ausgabe sollte lauten

    "------Java" wobei "-" Leerzeichen bedeutet
     

  4. #4
    Andron Andron ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Beiträge
    180
    Ich würde sagen:

    Code java:
    1
    2
    3
    
    String wort="java";
    String formatter="-----"
    System.out.println(formatter+java);

    Oder habe ich dein Problem falsch verstanden?
     

  5. #5
    tyronm tyronm ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    18
    Hi,

    nein klingt überhaupt nicht verkehrt so hatte ich es auch vor. Ich dachte nur es gibt eine elegantere Lösung. Vielen Dank nochmal für Dein Tipp
     

  6. #6
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Schöner ist:
    Code java:
    1
    2
    
    String word="java";
    String formattedWord = String.format("--------%s",word);

    Formatierungselement sind Grundlegend wie in sprintf für C++.
     

  7. #7
    tyronm tyronm ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    18
    Hi ,
    ich verwende leider kein Java 5.0 Formatter geht also nicht. Die erste Idee ist leider nur eine konkatenation was mir kaum nützt. Ich suche so etwas wie DecimalFormat für Zeichenketten, die eine gegebene Zeichenkette automatisch auf die vorgegebene Anzahl an Stellen formattiert. Also wie ein Platzhalter.
    Platzhalter = " " (10 Stellen)
    String s = "JAVA" (4 Stellen)
    Platzhalter.format(s)
    Ausgabe -> " JAVA" (4 stellen druch "JAVA" besetzt + 6 leere Stellen)
    ein kleiner Tipp diesbezüglich wäre sehr willkommen
     

  8. #8
    MiMi MiMi ist offline Mitglied Smaragd
    Registriert seit
    Sep 2007
    Beiträge
    1.177
    Also mir wurde da nur einfallen, zu zaehlen wie lang der String ist, und solange der kleiner ist als ne vorgegebene Laenge ein Leerzeichen davor einzufuegen mittels while. Oder halt mit ner for schleife, so viele Leerzeichen wie noetig in einen String fuegen und den dann vor den andern String einfuegen.
     

  9. #9
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Such mal nach "sprintf java" es gibt da einige Implementierungen auch für Java 1.4 die du nutzen könntest.
     

  10. #10
    tyronm tyronm ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    18
    Hi,
    Danke für eure Tipps. Ich werde mich melden wenn es klappt.
     

  11. #11
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    Zitat Zitat von MiMi Beitrag anzeigen
    Also mir wurde da nur einfallen, zu zaehlen wie lang der String ist, und solange der kleiner ist als ne vorgegebene Laenge ein Leerzeichen davor einzufuegen mittels while. Oder halt mit ner for schleife, so viele Leerzeichen wie noetig in einen String fuegen und den dann vor den andern String einfuegen.
    Benutze bei dieser Lösung, aber bitte einen StringBuffer, da dieser für Stringoperationen gedacht ist und wesentlich schneller damit arbeitet (dort gibt es auch ein insert)
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

  12. #12
    tyronm tyronm ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    18
    Hi,
    habe jetzt eine Lösungsmöglichkeit und wollte es mit euch teilen.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    String platzhalter = "                              "; // 30 Stellen
    String s = "java"; // 4 Stellen
    BigDecimal p = new BigDecimal(s.length());
    BigDecimal c = new BigDecimal(platzhalter.length());
    BigDecimal d = c.subtract(p);
    int f = Integer.parseInt(d.toString());
    String z = " "; // 1 Leerzeichen
    String y = "";
    for (int i = 0; i<f;i++){
                                        y = y+z;
                                 }
    String neu = y+s; // 30 Stellen (26 leer + Java)
    Ist zwar bisschen rudimentär aber macht das was er soll
    Elegantere vorschläge sind willkommen.
     

  13. #13
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    Warum einfach wenns auch kompliziert geht oder wie?

    Code java:
    1
    2
    3
    4
    
    StringBuffer result = new StringBuffer("java");
    while (buffer.length()<30){
       result.insert(0," ");
    }
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

  14. #14
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.
    Zitat Zitat von Anime-Otaku Beitrag anzeigen
    Warum einfach wenns auch kompliziert geht oder wie?

    Code java:
    1
    2
    3
    4
    
    StringBuffer result = new StringBuffer("java");
    while (buffer.length()<30){
       result.insert(0," ");
    }
    Ja, apropos kompliziert...
    Code java:
    1
    
    String res = String.format("%30s", "java");
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  15. #15
    tyronm tyronm ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    18
    hi Anime,
    Hammerkurze Sache. Hat aber nicht geklappt.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
     
    StringBuffer result = new StringBuffer("java");
                StringBuffer buffer = new StringBuffer("                              ");
                System.out.println("buffer Länge=" + buffer.length());
                while (buffer.length()<30){   
                        result.insert(0," ");
                    } 
                System.out.println("resultlänge" + result.length());
    woran liegt es?
     

Ähnliche Themen

  1. String datum formatieren
    Von w_wintersun im Forum Java Grundlagen
    Antworten: 1
    Letzter Beitrag: 28.12.10, 12:33
  2. String formatieren
    Von Sasser im Forum PHP
    Antworten: 9
    Letzter Beitrag: 19.03.10, 17:48
  3. String formatieren
    Von automatix1311 im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 16.02.09, 09:55
  4. String formatieren
    Von msycho im Forum PHP
    Antworten: 1
    Letzter Beitrag: 20.11.07, 19:27
  5. string in Uhrzeit formatieren
    Von tgwd im Forum PHP
    Antworten: 4
    Letzter Beitrag: 15.09.05, 15:04