Dom*_*nik 167 java string integer
我想将一个整数35634646转换为千","所以它应该是35,634,646.
这样做最快的方法是什么?
Eng*_*uad 270
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Run Code Online (Sandbox Code Playgroud)
Output: 35,634,646
Run Code Online (Sandbox Code Playgroud)
Ste*_*eod 146
你要求最快,但也许你的意思是"最好"或"正确"或"典型"?
您还要求使用逗号表示数千个,但也许您的意思是"根据您的用户的本地习惯以正常的人类可读形式"?
你这样做:
int i = 35634646;
String s = NumberFormat.getIntegerInstance().format(i);
Run Code Online (Sandbox Code Playgroud)
美国人将获得"35,634,646"
德国人将获得"35.634.646"
瑞士德国人将获得"35'634'646"
mop*_*led 81
int bigNumber = 1234567;
String formattedNumber = String.format("%,d", bigNumber);
Run Code Online (Sandbox Code Playgroud)
Fra*_*kie 35
int value = 100000;
String.format("%,d", value); // outputs 100,000
Run Code Online (Sandbox Code Playgroud)
double value = 21403.3144d;
String.format("%,.2f", value); // outputs 21,403.31
Run Code Online (Sandbox Code Playgroud)
Bal*_*a R 20
int value = 35634646;
DecimalFormat myFormatter = new DecimalFormat("#,###");
String output = myFormatter.format(value);
System.out.println(output);
Run Code Online (Sandbox Code Playgroud)
OUTPUT:35634646
Grz*_*ski 15
其他答案是正确的,但在使用之前请仔细检查您的语言环境"%,d":
Locale.setDefault(Locale.US);
int bigNumber = 35634646;
String formattedNumber = String.format("%,d", bigNumber);
System.out.println(formattedNumber);
Locale.setDefault(new Locale("pl", "PL"));
formattedNumber = String.format("%,d", bigNumber);
System.out.println(formattedNumber);
Run Code Online (Sandbox Code Playgroud)
结果:
35,634,646
35 634 646
Run Code Online (Sandbox Code Playgroud)
使用扩展
import java.text.NumberFormat
val Int.commaString: String
get() = NumberFormat.getInstance().format(this)
val String.commaString: String
get() = NumberFormat.getNumberInstance().format(this.toDouble())
val Long.commaString: String
get() = NumberFormat.getInstance().format(this)
val Double.commaString: String
get() = NumberFormat.getInstance().format(this)
Run Code Online (Sandbox Code Playgroud)
结果
1234.commaString => 1,234
"1234.456".commaString => 1,234.456
1234567890123456789.commaString => 1,234,567,890,123,456,789
1234.456.commaString => 1,234.456
Run Code Online (Sandbox Code Playgroud)