본문 바로가기
Programming/JAVA

이론_10. String 클래스

by yoon9i 2024. 3. 6.
/*
    <String 클래스>

    ◎ 정적 메서드

    1. copyValueOf(char[] x)
    : valueOf(char[] x) 와 동일하다

    2. format(String x, Object... y)
    : 매개변수 x에 명시된 형식에 인자인 값(들) y를 순차적으로 집어 넣어 새로운 문자열(String)로 반환한다.

    3. join(String x, String... y)
    ※ String... : 가변인자
    : 매개변수 y가 가지는 문자열(String) 들 사이에 x를 넣어 이어 붙인 새로운 문자열(String)을 반환한다.

        String[] cities = {"서울", "대전", "대구", "부산"};
        //첫번재 문자와 마지막 문자열은 안들어간다.
        System.out.println( String.join(" ~ ", cities)); // >>> "서울 ~ 대전 ~ 대구 ~ 부산"

    4. valueOf(boolean x)
    : 전달 받은 x를 문자열(String)로 반환한다.

    5. valueOf(char x)
    : 전달 받은 x를 문자열(String)로 반환한다.

    6. valueOf(char[] x)
    : 전달받은 문자 배열(char[])인 매개변수 x를 문자열(String)로 반환한다.

    7. valueOf(double x)
    : 전달 받은 x를 문자열(String)로 반환한다.

    8. valueOf(float x)
    : 전달 받은 x를 문자열(String)로 반환한다.

    9. valueOf(int x)
    : 전달 받은 x를 문자열(String)로 반환한다.

    10. valueOf(long x)
    : 전달 받은 x를 문자열(String)로 반환한다.



    ◎ 객체 메서드(비정적 메서드)

    1. charAt(x)
    : x 번째 문자(char)를 반환한다. 이때, x는 0부터 시작함에 유의한다

        String message = "Hello";
        char secondChar = message.charAt(1);
        System.out.println(secondChar); // >>> e

    2. concat(String x)
    : 호출 대상인 문자열 끝에 문자열 x 를 이어 붙인 문자열( String )을 반환한다.

        String h = "Hello";
        String w = "World";
        String message = h.concat(w); // h + w
        System.out.println(message); // >>> HelloWorld

    * 문자열 비교할때 '==' 만 쓰지말것

    3. contains(String x)
    : 호출 대상인 문자열이 매개변수인 문자열 x를 내용으로 포함하는가에 대한 여부(boolean)를 반환한다.

        String message = "Hello World!";
        System.out.println(message.contains("Hello")); // >>> true
        System.out.println(message.contains("World")); // >>> true
        System.out.println(message.contains("Hi"));    // >>> false

    4. contentEquals(String x)
    : 호출 대상인 문자열이 가지는 내용과 매개변수인 문자열 x가 가지는 내용이 같은가에 대한
      여부(boolean)를 반환한다. equals(...) 메세드의 용도와 유사하다.

        String message1 = "Hello World!";
        String message2 = "Hello World?"
        System.out.println(message1.contentEquals(message2)); // >>> false

    5. endsWith(String x)
    : 호출 대상인 문자열이 가지는 내용이 매개변수인 문자열 x로 끝나는가에 대한 여부(boolean)를 반환한다.

        String message = "Hello World!";
        System.out.println(message1.endsWith("!"));     // >>> true
        System.out.println(message1.endsWith("d"));     // >>> true
        System.out.println(message1.endsWith("rld!"));  // >>> true
        System.out.println(message1.endsWith("World")); // >>> false  ; World!로 끝남

    6. equals(Object x)
    : 호출 대상이 매개변수인 Object x와 동일한가에 대한 여부(boolean)를 반환한다.
      단, x가 문자열(String) 타입으로 형변환 가능한 경우, contentEquals(...) 메서드와 동일하게 작동한다

        String message1 = "Hello World!";
        String message2 = "Hello World?";
        System.out.println(message1.equals(message2));  // >>> false

    7. equalsIgnoreCase(String x)
    : contentEquals(...) 메세드와 동일하지만 호출 대상이 되는 문자열과 매개변수인 문자열을 비교할때
      대소문자를 가리지 않는다는 차이가 있다.

        String message1 = "Hello World!";
        String message2 = "Hello WORLD!";
        System.out.println(message1.equals(message2));  // >>> false ; equals 는 대소문자까지 다 똑같아야함
        System.out.println(message1.equalsIgnoreCase(message2)); // >>> true ; equalsIgnoreCase 는 대소문자 구분안함

    8. indexOf(String x)
    : 호출 대상이 가지는 내용 중 매개변수인 문자열 x의 내용에 대한 시작점인 순번( int )을 반환한다.
      없다면 -1을 반환한다. 단, x를 여러번 포함하고 있다면 가장 빠른 순번을 반환한다.

        String alphabet = "ABCDEF";
        System.out.println(alphabet.indexOf("C"));   // >>> 2
        System.out.println(alphabet.indexOf("CDE")); // >>> 2
        System.out.println(alphabet.indexOf("Z"));   // >>> -1

        String message = "Banana, Orange, Sweet Orange, Black Orange, Color Orange, Oranges, More Oranges";
        System.out.println(message.indexOf("Orange")); // >>> 8
        //배열로 받아들여서 0부터 시작하고 빈칸도 포함하여 제일 처음 Orange 의 'O'를 찾음

    9. isEmpty()
    : 호출 대상인 문자열의 내용이 없는가(빈 문자열인가)에 대한 여부(boolean)를 반환한다.

    10. LastIndexOf(String x)
    : indexOf(...) 메서드와 동일하나 x를 여러번 포함하고 있는 경우 마지막 순번을 반환한다.
      어떠한 문자열이 어떤 문자열을 한 번만 포함하는가의 여부를 indexOf 메서드와 LastIndexOf 메서드의 호출결과가
      같음을 보고 알수 있다.

        String message = "Banana, Orange, Sweet Orange, Black Orange, Color Orange, Oranges, More Oranges";
        System.out.println(message.LastIndexOf("Orange")); // >>> 72
        //배열로 받아들여서 0부터 시작하고 빈칸도 포함하여 제일 마지막 More Oranges 의 Oranges의 'O'를 찾음

    11. Length()
    : 호출 대상인 문자열이 가지는 문자의 개수를 반환한다.

        System.out.println("한글English123".length()); // >>> 12

    12. matches(String x)
    : 호출 대상인 문자열이 가지는 내용이 매개변수인 문자열 x에 대한 정규표현식(Regular Expression)에 상응하는가에
      대한 여부(boolean)를 반환한다 (*개어려움*)

        String someInput = "12345";
        System.out.println(someInput.matches("^([0-9]{5})$")); // >>> true

    13. repeat(int x)
    : 호출 대상인 문자열의 내용을 x번 반복한 새로운 문자열(String)을 반환한다.

        String aaa = "a".repeat(10);
        System.out.println(aaa); // >>> "aaaaaaaaaa"

    14. replace(String x, String y)
    : 호출 대상인 문자열의 내용에서 문자열 x를 찾아 문자열 y로 치환한 새로운 문자열(String)을 반환한다.

        String diet = "밥, 야채1, 야채2, 야채3";
        System.out.println(diet.replace("야채","고기")); // >>> "밥, 고기1, 고기2, 고기3"

    15. replaceAll(String x, String y)
    : 호출 대상인 문자열의 내요에서 문자열 x인 정규표현식에 일치하는 내용을 y로 치환한
      새로운 문자열(String)을 반환한다.

        String diet = "010-1234-5678";
        System.out.println(diet.replaceAll("[^0-9]", "")); // >>> 01012345678

    16. split(String x)
    : 호출 대상이되는 문자열에서 매개변수인 문자열 x를 기준으로 나눈 문자열 배열(String[])를 반환한다.
      만약, x에 빈 문자열을 전달하면, 문자 단위로 자른 문자열 배열을 반환한다. 이때 나누는 기준이 되는 x는 사라짐으로 유의한다.
      또한 나누는 기준 x를 포함하고 있지 않다면 호출 대상이 되는 문자열의 내용을 그대로 가지는 길이가 1인 문자열 배열을 반환한다.

        String input = "Hello? Nice to meet you!";
        String[] inputArray = input.split(" "); // >>> {"Hello?","Nice","to","meet","you!"}
        for (int i = 0; i < inputArray.length; i++){
            System.out.println(i + " : " + inputArray[i]);
        }
        // >>> 0 : Hello?
        //     1 : Nice
        //     2 : to
        //     3 : meet
        //     4 : you!

    17. startsWith(String x)
    : 호출 대상이 되는 문자열의 내용이 매개변수인 문자열 x로 시작하는가에 대한 여부(boolean)를 반환한다.

        String message = "Hello World!";
        System.out.println(message.startsWith("hello"));        // >>> false
        System.out.println(message.startsWith("Hell"));         // >>> true
        System.out.println(message.startsWith("Hello W"));      // >>> true
         System.out.println(message.startsWith("Hello World")); // >>> true

    18. strip()
    : 호출 대상이되는 문자열의 앞,뒤에 있는 공백(유니코드 상 공백 포함)을 모두 제거한 새로운 문자열(String)을 반환한다.

        String message = "      A   B  C DE      ";
        System.out.println(message.strip());        // >>> "A   B  C DE" ; 처음,끝 문자열 앞,뒤 공백제거

    19. stripLeading()
    : 호출 대상이 되는 문자열의 앞에 있는 공백(유니코드 상 공백 포함)을 모두 제거한 새로운 문자열(String)을 반환한다.

        String message = "      A   B  C DE       ";
        System.out.println(message.stripLeading());        // >>> "A   B  C DE       " ; 처음 문자열 앞 공백제거

    20. stripTrailing()
    : 호출 대상이되는 문자열의 뒤에 있는 공백(유니코드 상 공백 포함)을 모두 제거한 새로운 문자열(String)을 반환한다.

        String message = "      A   B  C DE       ";
        System.out.println(message.stripTrailing());        // >>> "      A   B  C DE" ; 끝 문자열 뒤 공백제거

    21. substring(int x, int y)
    : 호출 대상이 되는 문자열이 가지는 문자들의 순번 상에서 x번 부터 y번 앞까지의 내용을 새로운 문자열로 만들어 반환한다.

        String message = "ABCDEF";
        System.out.println(message.substring(2, 3));        // >>> "C" ; 2번 부터 3번 앞까지 == 2번

    22. toCharArray()
    : 호출 대상이 되는 문자열이 가지는 내용을 문자 배열(char[])로 반환한다.

    23. toLowerCase()
    : 호출 대상이 되는 문자열이 가지는 알파벳 중 대문자인 것을 소문자로 치환한 새로운 문자열( String )을 반환한다.

        String message = "Hello Very Glad To See You";
        System.out.println(message.toLowerCase()); // >>> "hello very glad to see you"

    24. toUpperCase()
    : 호출 대상이 되는 문자열이 가지는 알파벳 중 소문자인 것을 대문자로 치환한 새로운 문자열( String )을 반환한다.

        String message = "Hello Very Glad To See You";
        System.out.println(message.toUpperCase()); // >>> "HELLO VERY GLAD TO SEE YOU"

    25. trim()
    : 호출 대상이 되는 문자열의 앞,뒤에 있는 공백(유니코드 상 20번 이하)을 모두 제거한 새로운 문자열(String)을 반환한다.
      특별한 목적이 있는 것이 아니라면 strip()을 대신 사용하자.

        String message = "     A   B  C DE     ";
        System.out.println(message.trim());  // >>> "A   B  C DE"
*/

'Programming > JAVA' 카테고리의 다른 글

이론_12. Math 클래스  (0) 2024.03.06
이론_11. String Format  (0) 2024.03.06
이론_9. 클래스  (0) 2024.03.06
이론_8. 메서드  (0) 2024.03.06
이론_7. WHILE  (0) 2024.03.06