import java.text.NumberFormat;
import java.text.ParseException;
public class Ex02_NumberFormat {
public static void main(String[] args) {
String s1 = "1000";
String s2 = "1,234";
String s3 = "4567.12";
// int a = Integer.parseInt(s2); 런타임 오류(문자열에 , 가 있어서)
int a = Integer.parseInt(s2.replaceAll(",", ""));
System.out.println(a);
// 문자열 -> 숫자
NumberFormat nf = NumberFormat.getInstance();
// Number : Integer, Long, Double 등의 상위 클래스
// Integer, Long, Double 클래스는 서로 상하(상속) 관계가 성립되지 않는다. 서로 형변환 불가
try {
// 예외를 가지고 있는 코드 : 프로그램 실행중 예외가 발생하면 catch블럭을 실행
Number n1 = nf.parse(s1);
Number n2 = nf.parse(s2);
Number n3 = nf.parse(s3);
System.out.println(n1); // 1000
System.out.println(n2); // 1234
System.out.println(n3); // 4567.12
// System.out.println(n1 + 1000); // 컴 오류. n1은 객체이며 사칙연산 불가
// Integer ob = (Integer)n1; // Number를 Integer로 형 변환. 런타임 오류(Long을 Integer로 형변환 해서)
Long ob = (Long) n1; // parse()로 형변환된 결과는 정수는 Long,실수는 Double임
System.out.println(ob+100); // 1100
// 실제는 ob.longValue()+100 임
// 실수를 정수형만 처리하도록
nf.setParseIntegerOnly(true);
Number n4 = nf.parse(s3);
System.out.println(n4); // 4567
} catch (ParseException e) {
// 예외(에러)가 발생할 때
e.printStackTrace(); // 에러 메시지를 출력
} // 예외를 내포하고 있기 때문에 바로 처리할 수 없다.
}
}
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0722_Ex02_Inheritance : 상속 (0) | 2021.07.22 |
---|---|
0722_Ex01_Inheritance : 상속 (0) | 2021.07.22 |
0721_Ex01_NumberFormat : Java API (0) | 2021.07.21 |
0720_복습_읽어보기 (0) | 2021.07.21 |
0720_Ex15_Math : Java API (0) | 2021.07.21 |