2
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 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

4 回答 4

5

DecimalFormat.format只接受DateorNumber对象,不接受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
于 2013-01-09T09:25:12.693 回答
0

这就是它应该被使用的方式。

format = new DecimalFormat(".00");
format.format(10.0);
于 2013-01-09T09:28:56.857 回答
0
String s = (String.format("%,d", 1000000)).replace(',', ' ');
于 2013-01-09T09:30:19.343 回答
-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
于 2016-02-25T17:07:36.237 回答