JAVA

[JAVA] - 문자열 한 글자씩 분리하는 방법

nam_ji 2023. 12. 4. 23:45

split() / toCharArray / charAt() / Stream

split()

  • split()은 지정된 문자열 x를 기준으로 문자열을 나누는 메소드입니다.
    즉, 괄호 안에 파라미터를 입력하면 파라미터의 기준대로 문자열을 나눈다는 의미입니다.
  • split(String regex)
package com.namji95.javabasic;

public class Separate_the_String_by_OneLetter {
	public static void main(String[] args) {
		String str = "MyString";
		
		// split()
		System.out.println("--------split--------");
		for (String s : str.split("")) {
			System.out.print(s + " ");
		}
	}
}
--------split--------
M y S t r i n g

toCharArray()

  • 문자열을 한 글자씩 나눠 char 타입의 배열에 담아 반환하는 메서드입니다.
  • 배열을 생성하여 처리하기 때문에 속도가 느립니다.
package com.namji95.javabasic;

public class Separate_the_String_by_OneLetter {
	public static void main(String[] args) {
		String str = "MyString";

		// toCharArray
		System.out.println("--------toCharArray--------");
		for (char c : str.toCharArray()) {
			System.out.print(c + " ");
		}
	}
}
--------toCharArray--------
M y S t r i n g

charAt()

  • charAt() 괄호 안에 인덱스 값을 주면 그 인덱스에 해당하는 문자가 반환됩니다.
  • 한글자씩 반환하며
    toCharArray() 메소드에 비해 내부적인 처리속도가 빠르다고 합니다. (배열을 생성하지 않기 때문에)
package com.namji95.javabasic;

public class Separate_the_String_by_OneLetter {
	public static void main(String[] args) {
		String str = "MyString";

		// charAt
		System.out.println("--------charAt--------");
		for (int i = 0; i < str.length(); i++) {
			System.out.print(str.charAt(i) + " ");
		}
	}
}
--------charAt--------
M y S t r i n g

stream

  • chars() 메소드를 이용해 IntStream화합니다.
  • char 타입의 스트림으로 변환합니다.
  • forEach를 이용해 한 글자씩 분리합니다.
package com.namji95.javabasic;

public class Separate_the_String_by_OneLetter {
	public static void main(String[] args) {
		String str = "MyString";
	
		// stream
		System.out.println("--------charAt--------");
		str.chars() // (IntStream)
					.mapToObj(i -> (char) i) // Stream<Character> 으로 변환
					.forEach(i -> System.out.print(i + " ")); // 출력
	}
}
--------Stream--------
M y S t r i n g