[문제]
길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.
[내 풀이]
class Solution {
public String solution(String str1, String str2) {
String answer = "";
char[] str1_c= str1.toCharArray();
char[] str2_c = str2.toCharArray();
for (int i = 0; i < str1.length(); i++){
answer += str1_c[i];
answer += str2_c[i];
}
return answer;
}
}
앞선 포스트의 다른 사람의 풀이 중 하나였던 toCharArray를 이용해 인덱스를 사용
* str1_c[i] + str2_c[i]와 같은 형태로 두 문자가 +로 묶였을 때, 문자열이 합쳐지는 것이 아닌, 아스키코드가 합쳐짐 (왜지)
[다른 사람 풀이]
class Solution {
public String solution(String str1, String str2) {
char[] chars1 = str1.toCharArray();
char[] chars2 = str2.toCharArray();
StringBuilder sb = new StringBuilder();
for (int i=0; i<chars1.length; i++) {
sb.append(chars1[i]).append(chars2[i]); //append함수를 이용
}
return sb.toString();
}
}
StringBuilder
- 자바에서 String객체는 변경 불가 -> 문자열 연결 시 새 문자열이 생성되며, 이전 문자열은 가비지 콜렉터로 들어감 (메모리 낭비)
- StringBuilder의 경우 변경 가능한 문자열을 만들어 줌
* String에 StringBuilder를 넣기 위해서는 toString()함수 적용시켜주어야함.
'개발 > 코테' 카테고리의 다른 글
[JAVA] 문자열 곱하기 (0) | 2024.04.02 |
---|---|
[JAVA] 문자 리스트를 문자열로 변환하기 (0) | 2024.03.26 |
[JAVA] 문자열 겹쳐쓰기 (0) | 2024.03.26 |
[JAVA] 홀짝 구분하기 (0) | 2024.03.26 |
[JAVA] 문자열 돌리기 (0) | 2024.03.26 |