본문 바로가기

BackEnd/Java

[java] 배열을 문자열로 합치는 방법

728x90
반응형

 

문제를 풀이하던 도중 배열에서 특정 문자열을 찾는 예제가 나왔음.

 

문자열이라면 indexOf(), contains() 메소드를 사용할 수 있겠지만,

배열은 해당 기능을 수행할 수 있는 특정 메소드가 없음.

 

따라서 두 가지 방법을 생각했음.

1. 배열을 문자열로 변경 → 특정 문자 포함 여부 확인

2. 배열을 List로 변경 → 특정 문자 포함 여부 확인

 

1번 방법으로 문제 풀이했으며, 이를 위해, 배열을 문자열로 변경하는 방법에 대해 알아보자!

 

◎ 배열 → 문자열

1. String.join() 메소드 활용
 → 배열을 특정 문자로 구분해 합친 문자열 반환함.
 → 첫 번째 인자 : 배열을 연결할 문자, 두 번째 인자 : 문자열로 합칠 배열
String[] strArr = {"A", "B", "C", "D"};
String strJoin = String.join(" ", strArr);

// 결과 : A B C D​

 

2. Streams API
 →  stream 객체로 변환한 후 다시 문자열로 변환
String[] strArr = {"A", "B", "C", "D"};
String strJoin = Arrays.stream(strArr).collect(Collectors.joining(" ");

// 결과 : A B C D​​


 →  접두사, 접미사를 추가할 수 있음. Collectors.joining("연결 문자", "접두사", "접미사")

String[] strArr = {"A", "B", "C", "D"};
String strJoin = Arrays.stream(strArr).collect(Collectors.joining(" ", "<", ">");

// 결과 : <A B C D>


3. for문을 통해 String 변수에 각각의 인덱스 값을 더해줌.

String[] strArr = {"A", "B", "C", "D"};
String strJoin = "";

for(String str : strArr){
	strJoin += str;
}

// 결과 : ABCD

 

위의 방법으로 배열을 문자열로 변경할 수 있으며,

배열은 크기도 한정되어 있고, 특정 값을 찾아주는 메소드도 없기 때문에 다른 형태로 변경해주는 것이 좋다고 생각합니다.

 

위와 같이 문자열로 변경하거나, List로 변경해 내장되어 있는 메소드를 사용하면 훨씬 수월하네요!

 

 

 

참고 블로그

https://covenant.tistory.com/259

728x90
반응형