[英]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.