본문 바로가기
Program/JAVA

[JAVA] 줄바꿈(\n 또는 \r\n)을 기준으로 문자열 나누기 - split, scanner, stream 등

by Dev200 2025. 2. 19.

Java에서 줄바꿈된 문자열을 분할하는 방법은 여러 가지가 있습니다.

split(), BufferedReader, Scanner, Stream API 등을 활용하여 다양한 환경에서 줄바꿈을 처리할 수 있습니다.


 

🚀 1. split("\n") 사용 (가장 간단한 방법)

public class SplitExample {
    public static void main(String[] args) {
        String text = "apple\nbanana\ncherry";

        // 줄바꿈 문자 기준으로 분할
        String[] lines = text.split("\n");

        for (String line : lines) {
            System.out.println(line);
        }
    }
}

 

✅ 가장 간단한 방법
🚨 Windows(\r\n) 환경에서는 \r가 남을 수 있음

 


 

🚀 2. split("\\R") 사용 (운영체제 자동 감지)

\\R은 운영체제에 따른 모든 줄바꿈 문자(\r, \n, \r\n)를 자동 감지합니다.

public class SplitExample {
    public static void main(String[] args) {
        String text = "apple\r\nbanana\ncherry";

        // 모든 줄바꿈 문자 자동 인식
        String[] lines = text.split("\\R");

        for (String line : lines) {
            System.out.println(line);
        }
    }
}

 

Windows, Linux, macOS 모두 자동 감지
Java 8 이상에서 사용 가능

 


 

🚀 3. BufferedReader 사용 (파일/큰 문자열 처리 시 유용)

import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;

public class SplitExample {
    public static void main(String[] args) throws IOException {
        String text = "apple\nbanana\ncherry";

        BufferedReader reader = new BufferedReader(new StringReader(text));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
    }
}

 

줄바꿈 자동 인식 (\r, \n, \r\n 모두 처리 가능)
파일을 읽을 때 유용 (new FileReader("file.txt") 사용 가능)

 


 

🚀 4. Scanner 사용

import java.util.Scanner;

public class SplitExample {
    public static void main(String[] args) {
        String text = "apple\nbanana\ncherry";

        Scanner scanner = new Scanner(text);
        while (scanner.hasNextLine()) {
            System.out.println(scanner.nextLine());
        }
        scanner.close();
    }
}

 

줄바꿈 자동 인식
파일 입력 처리 시 유용 (new Scanner(new File("file.txt")) 사용 가능)

 


 

🚀 5. Stream API 사용 (Java 8 이상)

import java.util.Arrays;

public class SplitExample {
    public static void main(String[] args) {
        String text = "apple\nbanana\ncherry";

        Arrays.stream(text.split("\\R")).forEach(System.out::println);
    }
}

 

간결하고 가독성 좋음
여러 개의 줄을 한 번에 처리하기 적합

 


 

🎯 최적의 방법 선택

방법 코드 Java 버전 특징

split("\n") text.split("\n") 모든 버전 🚨 Windows(\r)에서는 문제 발생 가능
split("\\R") text.split("\\R") Java 8 이상 ✅ 모든 OS에서 줄바꿈 자동 감지
BufferedReader reader.readLine() 모든 버전 ✅ 파일, 큰 데이터 처리 시 추천
Scanner scanner.nextLine() 모든 버전 ✅ BufferedReader와 비슷, 파일 처리 가능
Stream API Arrays.stream(text.split("\\R")) Java 8 이상 ✅ 간결한 코드, 여러 줄을 한 번에 처리 가능

 


 

💡 추천

  • 간단한 경우: split("\\R")
  • 파일이나 대용량 문자열: BufferedReader
  • 가독성이 중요할 때: Stream API

이제 줄바꿈 문자열을 쉽게 나눌 수 있습니다! 🚀

 

#Java #split #BufferedReader #Scanner #StreamAPI #줄바꿈 #문자열 #파일처리 #코딩 #Java8

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

[JAVA] Java에서 ZIP Bomb 오류 해결 방법 - feat.Excel  (1) 2025.02.14