5.2.4 String 클래스의 주요 메서드

jh·2022년 1월 24일
0

Do it! 자바 완전 정복

목록 보기
47/70
post-custom-banner

String 클래스는 문자열의 길이, 문자열 검색, 문자열 변환 및 연결 문자열 수정이나 내용 비교 등 매우 풍부한 메서드를 제공한다. 밑의 표는 줄이고 줄여 가장 대표적 인것만 뽑아낸 것이다. 나중에 자바를 이용해 프로젝트를 수행하다 보면 다음 메서드들은 적어도 한 번 이상 사용하게 될 것이다.

표가 너무 복잡하다면 다음과 같이 간략하게만 알아 두자.

length() : 문자열의 길이를 리턴한다
charAt() : 문자열에서 특정 인덱스에 위치해 있는 문자를 알아 낸다.
indexOf() : 문자열에서 특정 문자나 특정 문자열을 앞에서부터 찾아 위칫값을 알아낸다.
lastindexOf() : 문자열에서 특정 문자나 특정 문자열을 뒤에서부터 찾아 위칫값을 알아낸다.
String.valueOf() : 기본 자료형을 문자열로 바꾸는 정적 메서드다.
concat(): 2개의 문자열을 연결한다. + 연산자와 동일한 기능을 수행한다.
getBytes(): 문자열을 byte 배열로 변환한다. 자바 입출력 과정에서 주로 사용한다.
toCharArray() : 문자열을 char 배열로 변환한다. 자바 입출력 과정에서 주로 사용한다.

실습

        // 문자열 길이
        String str1 = "Hello Java!";
        String str2 = "안녕하세요! 반갑습니다.";
        System.out.println(str1.length());
        System.out.println(str2.length()); // 한글, 영문 구분 없이 한 문자당 1개의 크기를 가짐
        System.out.println();

        // 문자열 검색
        // @charAt()
        System.out.println(str1.charAt(1));
        System.out.println(str2.charAt(1)); //한글 영문 구분 없이 인덱스 1 위치의 문자
        System.out.println();

        // @indexOf(), lastIndexOf()
        System.out.println(str1.indexOf('a')); // 앞에서부터 첫 번째 'a'가 위치한 인덱스
        System.out.println(str1.lastIndexOf('a')); // 뒤에서부터 첫 번째 'a'가 위치한 인덱스
        System.out.println(str1.indexOf('a',8));
        System.out.println(str1.indexOf("Java"));
        System.out.println(str1.lastIndexOf("Java"));
        System.out.println(str2.indexOf("하세요"));
        System.out.println(str2.lastIndexOf("하세요"));
        System.out.println(str1.indexOf("Bye")); // 해당 문자(열)이 없는 경우 -1 리턴
        System.out.println(str2.lastIndexOf("고맙습니다"));
        System.out.println();

        // 문자열 변환 및 연결
        // @String.valueOf(기본 자료형) : 기본 자료형 -> 문자열 변환
        String str3 = String.valueOf(2.3);
        String str4 = String.valueOf(false);
        System.out.println(str3);
        System.out.println(str4);

        // @concat() : 문자열 연결
        String str5 = str3.concat(str4);
        System.out.println(str5);

        //String.valueOf() + concat()
        String str6 = "안녕" + 3;
        String str7 = "안녕".concat(String.valueOf(3));

        
        // 문자열을 byte[] 또는 char[]로 변환
        String str8 = "Hello Java!";
        String str9 = "안녕하세요";

        // @getBytes() : 문자열 -> byte[] 변환
        byte[] array1 = str8.getBytes();
        byte[] array2 = str9.getBytes();
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));

        // @tocharArray() : 문자열 -> char[] 변환

        char[] array3 = str8.toCharArray();
        char[] array4 = str9.toCharArray();
        System.out.println(Arrays.toString(array3));
        System.out.println(Arrays.toString(array4));


간략하게 설명하면 다음과 같다

toLowerCase(): 영문 문자를 모두 소문자로 변환한다.
toUpperCase(): 영문 문자를 모두 대문자로 변환한다.
replace(): 일부 문자열을 다른 문자열로 대체한다.
substring():문자열의 일부만을 포함하는 새로운 문자열 객체를 생성한다.
split():특정 기호를 기준으로 문자열을 분리한다.
trim():문자열의 좌우 공백을 제거한다.
equals():두 문자열의 위칫값이 아닌 실제 데이터값을 비교한다. 이때 대소문자를 구분한다.
equalsIgnoreCase(): 두 문자열의 위칫값이 아닌 실제 데이터값을 비교한다. 이때 대소문자를 구분하지 않는다.

실습

        // 문자열 수정
        // @ toLowercase(), toUpperCase()
        String str1 = "Java Study";
        System.out.println(str1.toLowerCase());
        System.out.println(str1.toUpperCase());

        // @replace()
        System.out.println(str1.replace("Study","공부")); // "Study" 문자열을 "공부"로 변경

        // @substring()
        System.out.println(str1.substring(0,5)); // 0 <= 인덱스 < 5의 문자열

        // @split()
        String[] strArray = "abc/ def-ghi jkl" .split("/|-| ");
        System.out.println(Arrays.toString(strArray));

        // @trim()
        System.out.println("  abc  ".trim());

        System.out.println();

        // 문자열의 내용 비교
        String str2 = new String("Java");
        String str3 = new String("Java");
        String str4 = new String("java");

        // @stack 메모리 비교(==): 위치(번지) 비교
        System.out.println(str2 == str3);
        System.out.println(str3 == str4);
        System.out.println(str4 == str2);

        // @equals(), equalsIgnoreCase() : 내용 비교
        System.out.println(str2.equals(str3));
        System.out.println(str3.equals(str4));
        System.out.println(str3.equalsIgnoreCase(str4));

결과

profile
코딩 공부 중...
post-custom-banner

0개의 댓글