String mit mehreren Zahlungsbeträgen formatieren

AssELAss

Aktives Mitglied
Hallo Jungs,

gibts eine Möglichkeit die Strings wie unten zusehen korrekt zu formatieren?
Dh.: führende Nullen entfernen sowie vor den letztzten zwei Ziffern ein Komma zu setzen um Centbeträge zu kennzeichnen

12.jpg
 
Dh.: führende Nullen entfernen sowie vor den letztzten zwei Ziffern ein Komma zu setzen um Centbeträge zu kennzeichnen
Anhang anzeigen 7197

Natürlich gibt es diese Möglichkeit!
Die führenden Nullen kannst du mit substring entfernen und ein Komma einfügen kannst du zum Beispiel indem du den String aufteilst (mit split) oder ebenfalls mit substring und dann einfach wieder den String am Schluss zusammenbauen (nachdem du das Komma eingefügt hast)
 
Zuletzt bearbeitet:
Hallo zusammen,

bräuchte immer noch einen kleinen Denkanstoß bzgl. meiner Formatierung:

Original String:

"01 00564398506 00006096307 00073832608 00000290010 00303218012 000396636"

Erwartetes Ergebnis:

"01\ 56439,85 06\ 609,63 07\ 7383,26 08\ 29,00 10\ 30321,80 12\ 3966,36"

Strings sind beliebig lange!
 
Zuletzt bearbeitet:
Was bedeuten die "\"? Aber wenn du sie unbedingt haben möchtest:

ACHTUNG - wie immer - es ist wieder Java 8!!!!
Java:
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test {

  public static void main(String... args) {
    String st = "01 00564398506 00006096307 00073832608 00000290010 00303218012 000396636";
    String[] strs = st.split("\\W+");
    System.out.println(Arrays.toString(strs));
    List<String> convert = new ArrayList<>();
    NumberFormat nf = NumberFormat.getInstance();
    nf.setGroupingUsed(false);
    nf.setMinimumFractionDigits(2);
    for (String s : strs) {
      if (s.length() < 9) {
        convert.add(s + "\\");
      } else {
        convert.add(nf.format(Double.parseDouble(s.substring(0, 9)) / 100d));
        convert.add(s.substring(9) + "\\");
      }
    }
    System.out.println(String.join(" ", convert));
  }
}
 
Super, vielen Dank!! 🙂

Gibts auch ne Möglichkeit dies so unter Java 7 hinzubekommen. Kann leider kein Java 8 benutzen.
Meckert mir dieses "String.join" an.
 
Ja dann musst du es eben händisch mit einer Iteration zusammenfügen. Aber das sollte doch kein Problem sein oder?
 
Ehrlich gesagt bin ich noch etwas unbeholfen was den Java-Bereich angeht.
Könntest du mir das bitte mal aufzeigen 🙂

Danke im Voraus.
 
Ahja, wenn es zum Privatvergnügen beiträgt, dann machen wir es jetzt wie es eigentlich im Forum sein sollte. Ich gebe dir Hilfe zur Selbsthilfe. Es sollte doch ein klein wenig Verständnis für meinen Code geben, doch ich habe das Gefühl, dass du noch an den Grundlagen arbeiten/feilen solltest.

[PSEUDOCODE]
Code:
public joinString(values : List<String>, delimiter : String) : String {
  if(values == null || values.isEmpty()) return "";
  builder : StringBuilder = null;
  for(s : String in values) {
    if(builder == null) {
      builder = new StringBuilder();
    } else {
      builder.append(delimiter);
    }
    builder.append(s);
  }
  return builder.toString();
}
 

Zurück
Oben