可能重复:
如何将字符串数字格式化为逗号和四舍五入?
我有一个字符串变量(这是一个字符串格式的数字),现在我想用逗号分隔每三个数字。我该怎么做?我的技术是Struts2
可能重复:
如何将字符串数字格式化为逗号和四舍五入?
我有一个字符串变量(这是一个字符串格式的数字),现在我想用逗号分隔每三个数字。我该怎么做?我的技术是Struts2
使用NumberFormat
:
long num = Long.valueOf("1234567890");
String numWithCommas = java.text.NumberFormat.getInstance().format(num);
编辑:
上面的代码片段将默认使用用户的当前语言环境(我猜这可能是你想要的——你希望数字以用户习惯的方式格式化)。如果要设置特定的语言环境,可以传递Locale
to的实例getInstance()
。Locale
为方便起见,该类中提供了一堆静态实例:
// Always prints with comma as separator
java.text.NumberFormat.getInstance(Locale.ENGLISH).format(num);
// => 1,234,567,890
// Always prints with period as separator
java.text.NumberFormat.getInstance(Locale.GERMAN).format(num);
// => 1.234.567.890
例如:将 100,000 转为 100,000
public class number
{
public static void main(String args [])
{
double d = 123456.78;
DecimalFormat df = new DecimalFormat("###,### ");
System.out.
println(df.format(d));
}
}
使用StringBuilder
它的insert()
方法可以实现这一点。
StringBuilder sb = new StringBuilder("123456987098");
int j = sb.length();
for(int i=3 ; i<j ; i=i+4){
sb.insert(i,",");
}
System.out.println(sb.toString());
String string = "1,234,567";
String[] splits = string.trim().split(",");
int num = 0;
for (String split : splits)
{
num = (num * 1000) + Integer.parseInt(split.trim());
}
System.out.println(num); // prints 1234567