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

+ Recent posts