프로그래밍/Java

[Java] String split()메서드

JBisCode 2023. 8. 20. 22:48


목차


✅ Split()

이번주 문제를 푸는 도중에 split()을 사용하는 문제가 나왔는데 기본적으로 한가지 구분자를 이용해서 나누는것은 많이 해봤는데 문제에서 제시한내용은 여러가지 구분자를 이용해서 문자열을 나누는 문제였다. 또, 가끔씩 구분자를 넣었을때 잘 작동안하는 문자열이 있으면 어떻게 해야할지 알아보자

✔︎ 기본적인 split()

public class SplitExample {
    public static void main(String[] args) {
        String text = "apple,banana,orange,grape";

        // 문자열을 쉼표(,)를 구분자로 나누어 배열로 반환
        String[] fruits = text.split(",");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

일반적으로는 “과” 사이에 구분을 할 문자를 담으면 되지만 가끔 ?와 같은 문자열을 넣었을떄 동작하지 않을때가있다.

✔︎ split()이 잘 작동하지 않을때

public class SplitExample {
    public static void main(String[] args) {
        String text = "apple?banana?orange?grape";

        // 문자열을 쉼표(,)를 구분자로 나누어 배열로 반환
        String[] fruits = text.split("\\?");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

이럴때는 \\를 이용해서 탈출구문을 사용해서 특별하게 처리를 해주면 해결된다.

✔︎ 여러가지 구분자로 split()사용할떄

public class SplitExample {
    public static void main(String[] args) {
        String text = "apple,banana;orange|grape";

        // 정규식을 활용하여 쉼표(,), 세미콜론(;), 수직 바(|)를 구분자로 나누어 배열로 반환
        String[] fruits = text.split("[,;|]");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

여러가지 구분자를 사용할때에는 []사이에 구분자로 사용할 문자들을 담아준뒤 “”사이에 넣어주면된다.