2017-09-28 9 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

내 실수는 dfNoNegative.setNegativePrefix("");에서 아무 것도 ("")입니다. 숫자로 직접 시작한 문자열 인 123""이 아니므로이 작업이 실패하므로 실패합니다. 기본적으로이 방법은 음수 접두사 (기본값은 -)로 사용해야하는 내용을 덮어 씁니다. 예를 들어 !으로 설정하면 System.out.println(dfNoNegative.parse("!123.00"));-123을 인쇄합니다.