039.2 파싱
파싱은 포매팅 과정의 반대다. 문자열이 주어지면 수로 파싱한다. NumberFormat.parse() 메서드를 사용하면 된다. 기본적으로 파싱에서는 분류(grouping)를 쓰지 않는다(예를 들어 분류하지 않으면 5,50K는 5로 파싱되고, 분류하면 5,50K를 550000으로 파싱한다).
이 정보를 헬퍼 메서드 집합에 다음과 같이 모아 넣을 수 있다.
public static Number parseLocale(Locale locale, String number)
throws ParseException {
return parse(locale, Style.SHORT, false, number);
}
public static Number parseLocaleStyle(
Locale locale, Style style, String number) throws ParseException {
return parse(locale, style, false, number);
}
public static Number parseLocaleStyleRound(
Locale locale, Style style, boolean grouping, String number)
throws ParseException {
return parse(locale, style, grouping, number);
}
private static Number parse(
Locale locale, Style style, boolean grouping, String number)
throws ParseException {
if (locale == null || style == null || number == null) {
throw new IllegalArgumentException(
"Locale/style/number cannot be null");
}
NumberFormat nf = NumberFormat.getCompactNumberInstance(locale, style);
nf.setGroupingUsed(grouping);
return nf.parse(number);
}