Java에서 문자열 자르기

Rupam Yadav 2023년10월12일
  1. Java에서 trim() 메서드를 사용하여 문자열 자르기
  2. Character.isWhiteSpacewhile을 사용하여 왼쪽과 오른쪽에서 별도로 문자열 자르기
  3. Apache Commons를 사용하여 왼쪽과 오른쪽에서 별도로 문자열 자르기
Java에서 문자열 자르기

이 기사에서는 시작점이나 끝점에 공백이 있는 문자열을 자르는 방법을 알아봅니다.

Java에서 trim() 메서드를 사용하여 문자열 자르기

트리밍에 권장되는 방법은 문자열의 앞뒤 공백을 양쪽에서 트리밍하려는 경우 trim() 메서드를 사용하는 것입니다. trim()은 공백을 제거하고 선행 공백이 없는 문자열을 반환합니다.

아래에서 시작 지점과 끝 지점 모두에 공백이 있는 문자열이 있는 stringToTrim 문자열을 사용합니다. 공백이 제거되었는지 확인하기 위해 자르기 전후에 문자열을 인쇄합니다. 더하기(+) 기호는 문자열에서 공백이 있는 위치를 나타냅니다.

stringToTrim.trim()을 호출하면 공백이 제거되었음을 알 수 있습니다.

public class TrimString {
  public static void main(String[] args) {
    String stringToTrim = "   This is just an example  ";

    System.out.println("Before trimming +++" + stringToTrim + "+++");

    stringToTrim = stringToTrim.trim();
    System.out.println("After trimming +++" + stringToTrim + "+++");
  }
}

출력:

Before trimming +++   This is just an example  +++
After trimming +++This is just an example+++

Character.isWhiteSpacewhile을 사용하여 왼쪽과 오른쪽에서 별도로 문자열 자르기

우리는 문자열이 왼쪽이든 오른쪽이든 한 쪽에서만 자를 수 있습니다. 여기에 두 가지 예가 있습니다. 하나는 왼쪽에서 자르고 다른 하나는 오른쪽에서 공백만 제거하는 것입니다.

다음 코드에서는 양쪽 끝에 공백이 있는 stringToTrim 문자열을 사용합니다. int 변수 i를 가져 와서 0으로 초기화합니다. 그런 다음 i 변수가 stringToTrim의 길이보다 작아질 때까지 실행되는 while 루프를 실행하고 Character를 사용하여 공백 문자도 확인합니다. .isWhitespace() 그리고 메소드 내부에서 i 값을 사용하여 모든 문자를 하나씩 전달합니다. 두 조건이 모두 충족되어야 하며, true인 경우 i의 값이 1 증가합니다.

이제 substring()을 호출하여 공백 문자를 자릅니다. substring()은 문자열의 왼쪽에서 시작하므로 문자열의 왼쪽을 자르고 왼쪽에 공백이 없는 문자열을 반환합니다.

public class TrimString {
  public static void main(String[] args) {
    String stringToTrim = "   This is just an example  ";

    int i = 0;
    while (i < stringToTrim.length() && Character.isWhitespace(stringToTrim.charAt(i))) {
      i++;
    }
    String leftTrim = stringToTrim.substring(i);

    System.out.println("Before trimming +++" + stringToTrim + "+++");

    System.out.println("After trimming +++" + leftTrim + "+++");
  }
}

출력:

Before trimming +++   This is just an example  +++
After trimming +++This is just an example  +++

이 예에서는 동일한 문자열을 사용하지만 i를 0으로 초기화하는 대신 stringToTrim().length - 1로 초기화한 다음 while에서 i가 0과 같습니다. 공백을 확인하는 방법은 동일합니다. 이제 조건이 충족되면 i 변수를 1만큼 줄입니다.

substring()이 문자열의 왼쪽에서 시작하므로 시작점을 0으로 전달하고 두 번째 인수는 오른쪽 i+1에서 시작하여 오른쪽 끝의 모든 공백을 제거하는 값입니다.

public class TrimString {
  public static void main(String[] args) {
    String stringToTrim = "   This is just an example  ";

    int i = stringToTrim.length() - 1;
    while (i >= 0 && Character.isWhitespace(stringToTrim.charAt(i))) {
      i--;
    }
    String rightTrim = stringToTrim.substring(0, i + 1);

    System.out.println("Before trimming +++" + stringToTrim + "+++");

    System.out.println("After trimming +++" + rightTrim + "+++");
  }
}

출력:

Before trimming +++   This is just an example  +++
After trimming +++   This is just an example+++

Apache Commons를 사용하여 왼쪽과 오른쪽에서 별도로 문자열 자르기

이 예에서는 Apache Commons라는 타사 라이브러리를 사용합니다. 프로젝트에 라이브러리를 포함하기 위해 다음 종속성을 사용합니다.

 <dependency>
  	<groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
 </dependency>

왼쪽에서 stringToTrim 문자열을 트리밍하려면 StringUtils.stringStart()를 사용하고 트리밍할 문자열과 공백으로 처리되는 null을 트리밍할 문자를 전달합니다. StringUtils.stripEnd()를 사용하여 오른쪽에서 트리밍하고 동일한 프로세스를 따릅니다.

import org.apache.commons.lang3.StringUtils;

public class TrimString {
  public static void main(String[] args) {
    String stringToTrim = "   This is just an example  ";

    String leftTrim = StringUtils.stripStart(stringToTrim, null);
    String rightTrim = StringUtils.stripEnd(stringToTrim, null);

    System.out.println("Before trimming +++" + stringToTrim + "+++");

    System.out.println("After left trimming +++" + leftTrim + "+++");

    System.out.println("After right trimming +++" + rightTrim + "+++");
  }
}

출력:

Before trimming +++   This is just an example  +++
After left trimming +++This is just an example  +++
After right trimming +++   This is just an example+++
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java String