일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Pipeline
- STREAM
- DevOps
- LAN어댑터
- Java
- ansible
- AOP
- 액세스회선
- 캐시서버
- Jenkins
- tomcat
- gradle
- 라우터
- post
- 허브
- JPA
- Collection
- cloud
- Set
- IntelliJ
- map
- Spring
- sonarQube
- container
- mybatis
- docker
- 소켓
- 방화벽
- jdk
- Linux
- Today
- Total
거북이-https://velog.io/@violet_evgadn 이전완료
Char 배열 처리 본문
코딩 테스트 시 필요한 이유
코딩 테스트를 풀면서 생각보다 "char[] charArr"를 사용하는 경우가 많았다.
대부분 char[] charArr = str.toCharArray() 처리를 한 뒤 푸는 문제였다.
이 경우 2가지 처리 방법이 필요했는데 "배열을 Collection<Character>로 만들기"와 "char 배열을 String으로 만들기"이다.
물론 for문을 통해 charArr를 순회하거나 charAt() 메서드를 통해 글자 하나씩 Collection에 넣는 방법도 있겠지만 이전에 사용했던 "Stream"을 활용하고 싶은 욕구가 컸다.
마찬가지로 char 배열을 String으로 만드는 것도 StringBuilder를 사용하는 것이 아닌 바로 String 데이터로 만들고 싶었다.
따라서 이 2가지 방법을 정리하기로 했다.
char Array to String
new String(char[])
char 배열을 String으로 만드는 방법은 간단했다.
new String()의 Parameter로 char 배열을 주입하기만 하면 끝난다. 아래 코드를 통해 확인해 보자.
char[] arr = new char[]{'s', 'a', 'm', 'p', 'l', 'e'};
String str = new String(arr);
System.out.println(str);
String to Characeter Collection
여기에서 중요한 메서드가 있는데 CharSequence Interface에 포함된 "chars() 메서드"이다.
str.chars()
String 또한 CharSequence Interface를 상속받은 Class로써 chars() 메서드를 사용할 수 있다.
chars() 메서드는 CharSequence를 글자(알파벳) 단위로 나눈 뒤 IntStream 형태로 변환하는 메서드를 말한다.
알다시피 char형 데이터는 ASCII Code에 의거하여 Int형 데이터로 변환할 수 있는데 이 성질을 이용하여 알파벳을 IntStream 형태로 변환시키는 것이다.
chars() 메서드를 통해 int 형태로 변환된 값을 mapToObj(i -> (char) i)로 변경시킨 뒤 collect() 메서드로 배열을 만들어준다면 우리가 원하는 형태의 Collection을 만들 수 있을 것이다.
여기에서 우리는 int형 데이터를 Character 객체로 변환시켜야 하므로 먼저 i -> (char) i를 통해 int 데이터를 char 데이터로 바꿔준다. 이후 기본 자료형을 객체로 만들어주는 mapToObj를 수행하면 (char) i가 (Character) i로 변환되어 Collection<Character>를 만들 수 있다.
String을 Character Collection으로 변환하는 코드는 아래와 같다.
String str = "Hello World";
///////// 핵심 로직
List<Character> strList = str.chars().mapToObj(i -> (char) i).collect(Collectors.toList());
///////// 핵심 로직
for (Character character : strList) {
System.out.println(character);
}
'코딩 테스트 시 알면 좋은 것들' 카테고리의 다른 글
Collections Method (0) | 2023.01.15 |
---|---|
StringBuilder (0) | 2023.01.15 |
조합과 순열 (0) | 2023.01.03 |
문자열 뒤집기 (0) | 2023.01.03 |
Compare 관련 메소드 (0) | 2022.12.31 |