2017-09-28 11 views
0

次のコードでは、正の数を許可したいだけです。com.ibm.icu.text.DecimalFormatは常にParseExceptionをスローします

DecimalFormat dfNoNegative = new DecimalFormat("#,##0.00"); 
dfNoNegative.setNegativePrefix(""); 
try { 
    System.out.println(dfNoNegative.parse("123.00")); 
} catch (ParseException e) { 
    System.out.println(e.getMessage()); 
    System.out.println(e.getErrorOffset()); 
    e.printStackTrace(); 
} 

エラーメッセージとErrorOffset::私も正確に文字列を解析することはできませんよ何らかの理由で、私は間違っていますどこ

Unparseable number: "123.00" 
6 

誰も私を導くことはできますか?作業中の文字列の例も良いでしょう。

答えて

0

私の間違いは何もない("")でした。数字で直接開始された文字列123""ではないため、これは失敗します。基本的に、このメソッドは負の接頭辞(デフォルトは-)として使用されるべきものを上書きします。たとえば、!に設定すると、System.out.println(dfNoNegative.parse("!123.00"));-123と表示されます。

関連する問題