문제
내가 작성한 정답
String
class Solution {
public String solution(String str1, String str2) {
String answer = "";
for(int i=0;i<str1.length(); i++){
answer += str1.charAt(i);
answer += str2.charAt(i);
}
return answer;
}
}
StringBuilder, StringBuffer
class Solution {
public String solution(String str1, String str2) {
StringBuilder answer = new StringBuilder();
// StringBuffer answer = new StringBuffer();
for(int i=0;i<str1.length(); i++){
answer.append(str1.charAt(i));
answer.append(str2.charAt(i));
}
return answer.toString();
}
}
StringBuilder, StringBuffer - String[], char[]
class Solution {
public String solution(String str1, String str2) {
StringBuilder answer = new StringBuilder();
// StringBuffer answer = new StringBuffer();
String[] str11 = str1.split("");
String[] str22 = str2.split("");
// char[] str11 = str1.toCharArray();
// char[] str22 = str2.toCharArray();
for(int i=0;i<str1.length(); i++){
answer.append(str11[i]);
answer.append(str22[i]);
}
return answer.toString();
}
}
Stream
import java.util.stream.IntStream;
class Solution {
public String solution(String str1, String str2) {
return IntStream.range(0,str2.length())
.mapToObj(i-> String.valueOf(str1.charAt(i))+String.valueOf(str2.charAt(i)))
// .reduce("",String::concat);
// .reduce("",(a,b)->a+b);
.collect(Collectors.joining());
}
}
// reduce - 스트림의 요소를 결합하여 단일 결과값을 생성
// reduce(초기값, 스트림 누적 함수)
다른 사람들의 정답
StringBuilder에서 append 연속으로 사용가능하다!
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]);
}
return sb.toString();
}
}
charAt으로 연속으로 더하기
class Solution {
public String solution(String str1, String str2) {
String answer = "";
for(int i=0; i<str1.length(); i++) {
answer += "" + str1.charAt(i) + str2.charAt(i);
}
return answer;
}
}
char 타입은 내부적으로 정수형으로 표현되기 때문에 문자열 연결 시 + 연산자를 사용할 때 char 타입 변수들이 먼저 계산된다면 숫자 계산으로 처리될 수 있다.
→ 빈 문자열 ""을 먼저 더하여 char 타입 값들을 문자열로 변환
→ String.valueOf() 메서드 사용
→ StringBuilder로 추가
Share article