본문 바로가기
Java

[Java] 문자열을 배열로, 배열을 문자열로 변환하기/String.split(), String.join()

by 가영리 2022. 6. 18.
728x90

https://ga0lee.tistory.com/44

 

[Algorithm] 프로그래머스(Level1) - 자연수 뒤집어 배열로 만들기(Java)

https://programmers.co.kr/learn/courses/30/lessons/12932 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면..

ga0lee.tistory.com

 

이 문제를 풀다가 입력받은 숫자를 뒤집기 위해선 문자열을 배열로 그리고 다시 배열을 문자열로 변환시키는 방법이 필요하다는 것을 깨닫고 찾아보다가 알게된 방법들을 소개하려고 한다.

 

 String.split() (문자열 -> 배열)

 

String 클래스의 메소드로 입력받은 정규표현식 또는 특정 문자를 기준으로 문자열을 나누어 배열에 저장하여 리턴한다. 이번 글에선 특정 문자만 이용해 문자열을 나누는 방법을 다룰 것이다.

public String[] split(String regex) {
    return split(regex, 0);
}

 

예시1

String s = "1234";
String[] list = s.split("");

System.out.println(Arrays.toString(list));

 

출력 결과

[1, 2, 3, 4]

 

예시2

String s = "Hello World";
String[] list = s.split("o");

System.out.println(Arrays.toString(list));

 

출력 결과

[Hell,  w, rld]

 

 

 String.join() (배열 -> 문자열)

 

String 클래스의 메소드로 각 요소 사이에 지정된 구분 기호를 사용하여 문자열 배열의 모든 요소를 연결시킨다.

public static String join(CharSequence delimiter, CharSequence... elements) {
    Objects.requireNonNull(delimiter);
    Objects.requireNonNull(elements);
    // Number of elements not likely worth Arrays.stream overhead.
    StringJoiner joiner = new StringJoiner(delimiter);
    for (CharSequence cs: elements) {
        joiner.add(cs);
    }
    return joiner.toString();
}

 

예시1

String[] list = ["a", "b", "c"];
String s = String.join("", list);

System.out.println(s);

 

출력 결과

abc

 

예시2

String[] list = ["Hello", "World"];
String s = String.join(" ", list);

System.out.println(s);

 

출력 결과

Hello World