반응형
해당 글에서는 문자열을 문자열 배열 혹은 문자 배열로 변환 방법에 대해서 확인해봅니다.
1) 구분자(delimiter)
💡 구분자(delimiter) 란?
- 문자열을 나누는 기준이 되는 문자를 말합니다.
- 예를 들어, "apple,banana,kiwi"와 같은 문자열을 쉼표(,)를 구분자로 사용하여 "apple", "banana", "kiwi"로 나눌 수 있습니다.
2) 구분자(delimiter)가 포함되지 않은 문자열
1. split()를 이용한 방법 : String to String[]
💡 split() 메서드를 이용하여서 ‘구분자(delimiter)’에 따라서 배열로 변환합니다.
String alphabet = "abcdefg";
String[] alphabetArr = alphabet.split("");
System.out.println("Array :: " + Arrays.toString(alphabetArr)); // Array :: [a, b, c, d, e, f, g]
2. toCharArray()를 이용한 방법 : String to Char[]
💡 toCharArray()를 이용하여 문자열을 문자 배열로 변환합니다.
String alphabet = "abcdefg";
char[] alphabetCharArr = alphabet.toCharArray();
System.out.println("Char Array ::" + Arrays.toString(alphabetCharArr)); // Char Array ::[a, b, c, d, e, f, g]
💡 [참고] 주로 ASCII Code로 변환할때 이를 활용하였습니다.
3. 루프문을 이용한 방법: String to char[]
💡 String.charAt() 함수를 이용하여서 요소를 추출하여 배열에 넣어주어서 배열로 반환하는 방법입니다.
String alphabet = "abcdefg";
char[] arr = new char[alphabet.length()];
for (int i = 0; i < alphabet.length(); i++) {
arr[i] = alphabet.charAt(i);
}
System.out.println("Array :: " + Arrays.toString(arr)); // Array :: [a, b, c, d, e, f, g]
4. Stream을 이용한 방법 : String to Character[]
💡 Java 1.8 이후 추가된 Stream을 이용하여서 문자열을 문자 배열로 변환합니다.
String alphabet = "abcdefg";
Character[] charArr = alphabet.chars().mapToObj(c -> (char) c).toArray(Character[]::new);
System.out.println("charArr :: " + Arrays.toString(charArr)); // charArr :: [a, b, c, d, e, f, g]
💡 [참고] 좀 더 자세하게 알고 싶으시면 아래의 링크를 참조하시면 도움이 됩니다.
3) 구분자(delimiter)가 포함된 문자열
1. split()를 이용한 방법: String to String[]
💡 split() 메서드를 이용하여서 ‘구분자(delimiter)’에 따라서 배열로 변환합니다.
String alphabetHyphen = "a-b-c-d-e-f-g";
String[] alphabetHyphenArr = alphabetHyphen.split("-");
System.out.println("alphabetHyphenArr :: " + Arrays.toString(alphabetHyphenArr)); // alphabetHyphenArr :: [a, b, c, d, e, f, g]
2. Stream을 이용한 방법 : String to String[]
💡 Stream을 이용하여서 구분자를 포함하여 문자열을 배열로 반환하는 방법입니다.
String alphabet = "a,b,c,d,e,f,g";
String[] strArr = alphabet.chars()
.filter(c -> c != ',')
.mapToObj(c -> String.valueOf((char) c))
.toArray(String[]::new);
System.out.println("strArr :: " + Arrays.toString(strArr)); // strArr :: [a, b, c, d, e, f, g]
3. StringTokenizer을 이용한 방법 : String to String[]
💡 StringTokenizer 클래스를 사용하여 문자열을 분할하고 각각의 문자열을 배열로 반환할 수도 있습니다.
💡 StringTokenizer는 String 클래스의 split() 메소드와 비슷하게 작동하지만, 구분자가 여러 개인 경우에도 사용할 수 있습니다.
StringTokenizer st = new StringTokenizer(alphabetHyphen, "-");
String[] arr = new String[st.countTokens()];
int i = 0;
while (st.hasMoreTokens()) {
arr[i++] = st.nextToken();
}
System.out.println("StringTokenizer :: " + Arrays.toString(arr)); // StringTokenizer :: [a, b, c, d, e, f, g]
오늘도 감사합니다. 😀
반응형
'Java > Short 개발' 카테고리의 다른 글
[Java/Short] 배열/리스트의 요소를 역순으로 재구성 방법 : forward to reverse (0) | 2023.06.05 |
---|---|
[Java/Short] 배열/리스트의 요소를 원하는 개수만큼 재 구성 방법 (0) | 2023.05.29 |
[Java/Short] 배열, 리스트를 문자열로 변환 방법 : Array, List to String (0) | 2023.05.27 |
[Java/Short] 카운트 Array/Map 구현방법: Counting Array, Counting Map (0) | 2023.05.13 |
[Java/Short] 최대공약수, 최소공배수 구하는 방법 : 두 수 또는 N개의 수 (0) | 2023.05.09 |