public class MainClass {
    public static void main(String[] args) {
        /*
        wrapper class
        일반 자료형(int, char, double...)을 클래스(기능추가)화 해 놓은 것

        일반자료형       wrapper class
        byte                Byte
        short               Short
        int                 Integer
        long                Long
        float               Float
        double              Double
        char                Character (한 문자만 쓸 때)
                            -> String (더 발전시켜놓은것, 문장 가능)
          */

        int num = 123;
        System.out.println("num = " + num);

        Integer inum = 333;
        System.out.println("inum = " + inum);

        // 형변환을 하는 경우에 wrapper class가 쓰인다. 그 외의 경우에는 별로 쓰이지 X
        // 숫자 -> 문자열 (문자열이 굉장히 보안에 강하다)
            // 정수
        String st = inum.toString();
        // String st = inum + "";  // 빈 문자열을 더하면 문자열로 인식한다.
        System.out.println("st: " + st);

        // 실수
        Double d = 123.4567;
        String dt = d.toString();
        // String dt = d + "";
        System.out.println("dt: " + dt);

        // 문자열 -> 숫자
        String strNum = "345";
        int n = Integer.parseInt(strNum);
        System.out.println("n = " + n);

        String strDou = "345.678";
        double d1 = Double.parseDouble(strDou);
        System.out.println("d1 = " + d1);

        // 숫자(2진수, 10진수, 16진수)
            // 10진수를 2진수로 변환
        int n10 = 12;
        String n2 = Integer.toBinaryString(n10);
        System.out.println("n2: " + n2);

            // 2진수를 10진수로 변환
        n2 = "10101100";
        n10 = Integer.parseInt(n2, 2);
        System.out.println("n10: " + n10);

            // 10진수를 16진수로
        n10 = 255; // 1111 1111
        String n16 = Integer.toHexString(n10);
        System.out.println("n16: " + n16);

            // 16진수를 10진수로
        n16 = "CA";
        n10 = Integer.parseInt(n16, 16);
        System.out.println("n10: " + n10);

        /*
            2진수 -> 16진수 -> 10진수
                    1100 1010
                    8421 8421
                       C    A
                      12   10
         16^1 * 12 + 16^0 * 10 = 202

            16진수 -> 2진수
                    9       3
                    8421    8421
                    1001    0011

        */


        /*
            String:
                    문자열 저장, 편집, 정보 취득
         */

        String str1;
        str1 = "Hello";

        // 1. 문자열의 길이
        int len = str1.length();
        System.out.println("len =" + len);

        // 2. 문자열끼리 합할 때
        String str2 = "World";
        String str3 = str1.concat(str2);
        // String str3 = str1 + str2;
        System.out.println(str3);

        // 3. 문자열 비교 (서로 같음, 다름)
        String str4 = "HelloWorldA";
        boolean b = str3.equals(str4);
        System.out.println("b ="+b);

        // 4. 지정 문자의 위치
        int pos = str4.indexOf("r");
        System.out.println("pos =" + pos);

        // 5. 문자열을 수정
        String str5 = str4.replace("l", "z");
        System.out.println("str5 = " + str5);

        // 6. 문자열 자르기 Array (나중에)

        // 6.1 문자열 자르기
        str5 = "안녕하세요 반갑습니다";
        String temp = str5.substring(6,8);
        System.out.println("temp = " + temp);

        // 7. 공백을 제거해 주는 함수 -> replace
            // ex) hello world -> 빈문자 = null 문자

        String str6 = "헌법재판소가 헌법재판관 6인 체제에서도 윤석열 대통령의 탄핵 심판 심리와 변론이 가능하다는 입장을 재확인하였다.";
        str6 = str6.replace(" ", "");
        System.out.println(str6);

        // 8. 앞뒤의 공백만 -> trim
        String str7 = "               java java java        ";
        str7 = str7.trim();
        System.out.println(str7);

        // 9. contains 탐색
        String str8 = "부산시 수영구";
        boolean b2 = str8.contains("수영");
        System.out.println("b2 = " +b2);

        // 10. charAt .. indexOf의 반대. 위치값(인덱스값)을 넣으면 해당 글자가 반환
        String str9 = "안녕하세요";
        char c1 = str9.charAt(2);
        System.out.println(c1);

    }
}

+ Recent posts