어제 오늘 내일

[Java] 문자열의 마지막 개행문자 제거하기 본문

IT/Java

[Java] 문자열의 마지막 개행문자 제거하기

hi.anna 2025. 3. 16. 06:35

Java에서 문자열의 마지막 개행 문자 제거 하기

문자열의 마지막에 개행 문자(\n, \r, \r\n)가 포함되어 있을 경우 이를 제거하는 방법을 정리해보겠습니다.

 

1. replaceFirst()를 활용한 제거

public class RemoveLastNewLine {
    public static void main(String[] args) {
        String text = "Hello World\n";

        // 마지막 개행 문자 제거
        String result = text.replaceFirst("\n$", "").replaceFirst("\r$", "").replaceFirst("\r\n$", "");

        System.out.println("[" + result + "]"); // [Hello World]
    }
}

설명

  • replaceFirst("\n$", "") → 마지막에 위치한 개행 문자(\n)를 제거
  • replaceFirst("\r$", "") → 마지막에 위치한 캐리지 리턴(\r)을 제거
  • replaceFirst("\r\n$", "") → 마지막에 위치한 \r\n 제거 (Windows 개행)
  • 마지막에 같은 개행문자가 중복될 경우, 1개의 개행문자만 제거됩니다.
    • Hello World\n\n -> Hello Word\n
    • Hello World\n\r -> Hello World

 

2. 정규 표현식 활용 (replaceAll)

public class RemoveLastNewLineRegex {
    public static void main(String[] args) {
        String text = "Hello World\n";

        // 정규식으로 마지막 개행 문자 제거
        String result = text.replaceAll("[\n\r]+$", "");

        System.out.println("[" + result + "]"); // [Hello World]
    }
}

설명

  • [\n\r]+$ : 문자열 끝($)에 위치한 개행 문자(\n 또는 \r)를 하나 이상(+) 제거
  • 문자열의 마지막에 여러개의 개행문자가 있으면, 모두 제거됩니다.

 

3. substring()을 활용한 방법

public class RemoveLastNewLineSubstring {
    public static void main(String[] args) {
        String text = "Hello World\n";

        // 마지막 문자가 개행 문자인지 확인 후 제거
        if (text.endsWith("\n") || text.endsWith("\r")) {
            text = text.substring(0, text.length() - 1);
        }

        System.out.println("[" + text + "]"); // [Hello World]
    }
}

설명

  • endsWith("\n") || endsWith("\r") → 마지막 문자가 개행 문자인지 확인
  • substring(0, text.length() - 1) → 마지막 문자 제거
  • 개행 문자가 여러 개일 경우 마지막 한 개만 제거합니다.

 

4. stripTrailing() (Java 11 이상)

public class RemoveLastNewLineJava11 {
    public static void main(String[] args) {
        String text = "Hello World\n";

        // Java 11 이상에서 지원하는 메서드
        String result = text.stripTrailing();

        System.out.println("[" + result + "]"); // [Hello World]
    }
}

설명

  • stripTrailing() → 문자열 끝에 있는 공백 및 개행 문자 제거 (Java 11 이상에서만 사용 가능)
  • 마지막에 있는 공백 문자도 같이 제거됩니다.

 

5. replaceAll("\\R+$", "") (모든 개행 문자 포함)

public class RemoveLastNewLineUniversal {
    public static void main(String[] args) {
        String text = "Hello World\n";

        // 모든 플랫폼의 마지막 개행 문자 여러개 제거 (\n, \r, \r\n)
        String result = text.replaceAll("\\R+$", "");

        System.out.println("[" + result + "]"); // [Hello World]
    }
}

설명

  • \\R+S → 문자열 끝에서 1개 이상의 모든 개행 문자(\n, \r, \r\n)를 의미하는 정규 표현식

 

 

반응형
Comments