簡體   English   中英

如何使用 Java 或 Groovy printf 將千位分隔符添加到字符串

[英]How to use Java or Groovy printf to add Thousands separator to String

在 Java 中,我需要向格式化為String的十進制數添加千位分隔符。 但是,我想要百萬或十億分隔符……只是保留數字的現有小數部分的千位分隔符。

9 == 9

999.999 == 999.999

9,999 == 9999

999999,999.999 == 999999999.999

我並不嚴格需要使用 printf,但轉換必須盡可能快。

輸入和輸出類型都必須是String

謝謝!

首先,這個問題並不像看起來那么簡單,因為千位分隔符並不總是逗號並且取決於用戶的語言環境。 在某些情況下,它實際上是一個句點,這可能會導致您為字符串操作編寫的任何代碼出現問題。

如果您希望尊重用戶的語言環境,則需要更深思熟慮的方法,另一方面,如果您只想考慮這個特定情況而不關心語言環境設置,那么您可以嘗試以下方法:

String s = "99999999.999";
s.replaceFirst("^(\\d+)(\\d{3})(\\.|$)", "$1,$2$3");

目前最好的解決辦法是:

return text.replaceFirst("^(\\d+)(\\d{3})(\\.|$)", "$1,$2$3");

java.text.NumberFormat 正是您所需要的。

訪問https://docs.oracle.com/javase/1.5.0/docs/api/java/text/NumberFormat.html

def test='6816843541.5432'
index = test.indexOf('.')
test = test.substring(0,index - 3 ) + ',' + test.substring(index-3,test.size())
println test

暫無
暫無

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

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