[Java] java 11 String 메서드 살펴보기

2023-08-18


사진: Unsplash 의 NEOM


1. repeat(반복횟수)

 

repeat는 문자열을 반복 횟수만큼 연결한 값의 문자열을 반환합니다. 앞에 문자열이 비어 있거나 카운트가 0이면 빈 문자열이 반환됩니다.

 

    @Test
    public void whenRepeatStringTwice_thenGetStringTwice() {
        String output = "La ".repeat(2) + "Land";
        System.out.println(output);
        MatcherAssert.assertThat(output, Matchers.is("La La Land"));
    }

2. strip()

 

모든 선행 및 후행 공백이 제거된 문자열을 결과값으로 반환합니다. 문자열 개체가 빈 문자열을 나타내거나 문자열의 모든 코드 포인트가 공백인 경우 빈 문자열이 반환됩니다. 그렇지 않으면 공백이 아닌 첫 번째 코드 포인트로 시작하여 공백이 아닌 마지막 코드 포인트를 포함하여 문자열의 하위 문자열을 반환합니다. 이 방법은 문자열의 시작과 끝에서 공백을 제거하는 데 사용될 수 있습니다.

 

    @Test
    public void whenStripString_thenReturnStringWithoutWhitespaces() {
        MatcherAssert.assertThat("\n\t  hello   \u2005".strip(), Matchers.is("hello"));
        //strip() 인스턴스 메서드는 선행 및 후행 공백이 모두 제거된 문자열을 반환합니다.
    }

3. trim()

 

모든 선행 및 후행 공백이 제거된 결과값을 반환합니다. 여기서 공백은 코드 포인트가 'U+0020' 이하인 문자(공백 문자)로 정의됩니다. 이 String 개체가 빈 문자 시퀀스를 나타내거나 이 String 개체가 나타내는 문자 시퀀스의 처음 문자와 마지막 문자가 모두 공백이 아닌 코드를 가지고 있는 경우 이 String 개체에 대한 참조가 반환됩니다.

 

그렇지 않으면 이 문자열의 모든 문자가 공백이면 빈 문자열을 나타내는 문자열 개체가 반환됩니다.
또한 코드가 공백이 아닌 문자열의 첫 번째 문자의 인덱스를 k로 하고 코드가 공백이 아닌 문자열의 마지막 문자의 인덱스를 m으로 합니다. 문자열 개체가 반환되며 인덱스 k에서 문자로 시작하여 인덱스 m에서 문자로 끝나는 문자열의 하위 문자열을 나타냅니다. 즉.substring(k, m + 1)의 결과입니다. 이 방법은 문자열의 시작과 끝에서 공간을 트리밍하는 데 사용할 수 있습니다.

 

    @Test
    public void whenTrimAdvanceString_thenReturnStringWithWhitespaces() {
        MatcherAssert.assertThat("\n\t  hello   \u2005".trim(), Matchers.is("hello   \u2005"));
        //trim 은   는 제거하지 못함
    }

4. isBlank()

 

문자열이 비어 있거나 공백 코드 포인트만 포함된 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.

 

    @Test
    public void whenBlankString_thenReturnTrue() {
        String input = "\n\t\u2005  ";
        MatcherAssert.assertThat(input.isBlank(), Matchers.is(true));
        //strip() 은 공백을 제거한 문자열을 리턴하지만 isBlank 는 공백만 있는지 여부를 체크해서 리턴한다.

        String input2 = "\n\t\u2005  test";
        MatcherAssert.assertThat(input2.isBlank(), Matchers.is(false));
        //공백이 아닌 문자열이 포함되어서 false 를 리턴한다.
    }

메인 이미지 출처 : 사진: UnsplashNEOM