如何使用Formatter格式化java中的字符串

时间:2013-01-09 09:23:14

标签: java android decimalformat

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)

如果有任何人有任何想法,请指导我。

4 个答案:

答案 0 :(得分:5)

DecimalFormat.format仅接受DateNumber个对象,而不是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