public class Test {
public static void main(String[] args) {
final String test1 = new String("01,");
final String test2 = new String("01,0");
final String test3 = new String("1,00");
String pattern = "##,##";
DecimalFormat formatter;
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setGroupingSeparator(',');
formatter = new DecimalFormat(pattern, dfs);
String result1 = formatter.format(test1);
String result2 = formatter.format(test2);
String result3 = formatter.format(test3);
System.out.println("Result 1 == " + result1);
System.out.println("Result 2 == " + result2);
System.out.println("Result 3 == " + result3);
}
}
我正在尝试格式化字符串。我添加了用于格式化的代码。我越来越异常了。
我希望结果为01,00。
EXCEPTION -
Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Number
at java.text.DecimalFormat.format(DecimalFormat.java:487)
at java.text.Format.format(Format.java:140)
at com.test.Test.main(Test.java:21)
如果有任何人有任何想法,请指导我。
答案 0 :(得分:5)
DecimalFormat.format
仅接受Date
或Number
个对象,而不是String
!
修改-1:强>
1)String pattern = "00.00"
2)
String result1 = formatter.format(formatter.parse(test1));
String result2 = formatter.format(formatter.parse(test2));
String result3 = formatter.format(formatter.parse(test3));
例如: 为了
final String test1 = new String("01,");
final String test2 = new String("02,3");
final String test3 = new String("1,00");
它给了我:
Result 1 == 01,00
Result 2 == 02,30
Result 3 == 01,00
答案 1 :(得分:0)
这是应该如何使用的。
format = new DecimalFormat(".00");
format.format(10.0);
答案 2 :(得分:0)
String s = (String.format("%,d", 1000000)).replace(',', ' ');
答案 3 :(得分:-2)
int minutes = (int) secondsLeft / 60;
int seconds = secondsLeft - minutes * 60;
String upDatePattern ;
upDatePattern = (String.format("%02d:%02d", minutes,seconds));
timerTextView.setText(upDatePattern);
this produces a zero padded "timer" with min/sec
ex: 02:35
you can find lots of formatting examples on "Formatter | Android Developers