任何人都可以给我一些预定义的方法或用户定义的方法来将字符串数字(例如:123455)转换为逗号分隔的整数值(例如:1,23,455)。
答案 0 :(得分:9)
int someNumber = 123456;
NumberFormat nf = NumberFormat.getInstance();
nf.format(someNumber);
答案 1 :(得分:3)
使用java.text.NumberFormat,这将解决您的问题。
答案 2 :(得分:1)
最后,我找到了满足我需求的精确解决方案。
import java.math.*;
import java.text.*;
import java.util.*;
public class Mortgage2 {
public static void main(String[] args) {
BigDecimal payment = new BigDecimal("1115.37");
NumberFormat n = NumberFormat.getCurrencyInstance(Locale.US);
double doublePayment = payment.doubleValue();
String s = n.format(doublePayment);
System.out.println(s);
}
}
答案 3 :(得分:0)
您正在寻找的是DecimalFormat类(here),您可以在其中轻松设置分隔符,并使用方法parse()
将字符串转换为数字。
答案 4 :(得分:0)
我认为123455
是String
。
String s = 123455;
String s1 = s.substring( 0 , 1 ); // s1 = 1
String s2 = s.substring( 1 , 3 ); // s2 = 23
String s3 = s.substring( 2 , 7 ); // s3 = 455
s1 = s1 + ',';
s2 = s2 + ',';
s = s1 + s2; // s is a String equivalent to 1,23,455
现在我们使用static int parseInt(String str)
方法将String转换为整数。此方法使用基数10返回由String
指定的str
中包含的数字的整数等值。
此处您无法转换s ---> int
。因为int没有逗号。如果你尝试转换,你将得到以下异常 java.lang.NumberFormatException
你应该使用DecimalFormat
类。 http://download.oracle.com/javase/1.4.2/docs/api/java/text/DecimalFormat.html
答案 5 :(得分:0)
您期望的结果是“以逗号分隔整数值”,在我看来是不正确的。但是,如果您只是在寻找输出表示,那么下面显示的这些代码行怎么样? (注意,你不能将valueToString的值返回解析为某些数据类型,因为它没有意义:))
MaskFormatter format = new MaskFormatter("#,##,###");
format.setValueContainsLiteralCharacters(false);
System.out.println(format.valueToString(123455));