簡體   English   中英

數字/貨幣格式

[英]Number/Currency Formatting

我確實有+000000027511,00這樣的格式的保加利亞貨幣。我想將此格式轉換為27511.00 ,我已經嘗試過並使用子字符串組合和regex,是否有任何模式或regex以更簡化的方式進行操作?

我嘗試過的實現,

String currency= "+000000027511"; // "[1234]" String
String currencyFormatted=currency.substring(1);
System.out.println(currencyFormatted.replaceFirst("^0+(?!$)", ""));

使用Double.valueOf + DecimalFormat.formatDecimalFormat.parse + formatBigDecimal可以做到這一點。

  // method 1 (parsing to Float)
  String s = "+000000027511,00".replace(",", ".");
  Double f = Double.valueOf(s);
  DecimalFormat df = new DecimalFormat("#########0.00");
  String formatted = df.format(f);
  System.out.println(formatted);

  // method 2 (parsing using Decimal Format)
  s = "+000000027511,00";
  DecimalFormat df2 = new DecimalFormat("+#########0.00;-#########0.00");
  Number n = df2.parse(s);
  df = new DecimalFormat("#########0.00");
  formatted = df.format(n);
  System.out.println(formatted);

  // method 3 (using BigDecimal)
  BigDecimal b = new BigDecimal(s.replace(",", "."));
  b.setScale(2, RoundingMode.HALF_UP);
  System.out.println(b.toPlainString());

將打印

27511.00
27511.00
27511.00

像這樣:

String s = "+000000027511,00";
String r = s.replaceFirst("^\\+?0*", "");
r = r.replace(',', '.');

嘗試

    String s = "+000000027511,00";
    s = s.replace("+", "").replaceAll("^0+", "").replace(',', '.');
    System.out.println(s);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM