9-28-31自動アセンブリ&取り外し、文字列、数値変換


文字列を数値に変換

  • 文字列を数値とWrapperに変換する様々な方法
  • int i = new Integer("100").intValue();	// floatValue(), longValue(), ...
    int i2 = Integer.parseInt("100");	// 주로 이 방법을 많이 사용.
    Integer i3 = Integer.valueOf("100");	// Float.valueOf("100"), Long.valueOf("100")..
    int i3 = Integer.valueOf("100");	// 위와 동일
  • n進数文字列を数値に変換する方法
  • int i2 = Integer.parseInt("100");
    int i3 = Integer.parseInt("100", 10);	// 위와 동일
    int i4 = Integer.parseInt("100", 2);	// 100(2) -> 4
    int i5 = Integer.parseInt("100", 8);	// 100(8) -> 64
    int i6 = Integer.parseInt("100", 16);	// 100(16)-> 256
    int i7 = Integer.parseInt("FF", 16);	// FF(16) -> 255
    int i8 = Integer.parseInt("FF");	// NumberFormatException(10진수에 FF가 없으므로)

    自動アセンブリと取り外し

  • 基本型と参照型との間の自動変換
  • 自動トレース:
  • エントリーレベルint->WrapperクラスIntegerに自動的に変換
  • アンインストール:WrapperクラスInteger->基本intへの自動変換
    public static void main(String[] args) {
        int i = 10;
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(new Integer(100));	// list에는 객체만 추가가능. 정석.
        list.add(100);		// OK. 컴파일러가 위 코드로 바꿔줌(오토박싱)
        
        Integer i = list.get(0);		// list에 저장된 첫번째 객체를 꺼낸다.
        int i = list.get(0).intValue();	// intValue()로 Integer를 int로 변환. 정석.
        int i = list.get(0);		// OK. 컴파일러가 위 코드로 바꿔줌(언박싱)
        
        // 기본형을 참조형으로 형변환(형변환 생략가능)
        Integer intg = (Integer)i;	// Integer intg = Integer.valueOf(i);
        Object obj = (Object)i;	// Object obj = (Object)Integer.valueOf(i);
        
        Long lng = 100L;		// Long lng = new Long(100L);
        
        int i2 = intg + 10;		// 참조형과 기본형간의 연산 가능
        long l = intg + lng;	// 참조형 간의 덧셈도 가능
        
        Integer intg2 = new Integer(20);
        int i3 = (int)intg2;	// 참조형을 기본형으로 형변환도 가능(형변환 생략가능)
    }