문제
내가 작성한 정답
String
class Solution {
public String solution(String my_string, int[] index_list) {
String answer = "";
for(int i= 0; i<index_list.length;i++){
answer += my_string.substring(index_list[i],index_list[i]+1);
}
return answer;
}
}
StringBuilder
class Solution {
public String solution(String my_string, int[] index_list) {
StringBuilder answer = new StringBuilder();
for(int i= 0; i<index_list.length;i++){
answer.append(my_string.substring(index_list[i], index_list[i] + 1));
}
return answer.toString();
}
}
StreamAPI
import java.util.stream.*;
class Solution {
public String solution(String my_string, int[] index_list) {
return IntStream.range(0,index_list.length)
.mapToObj(i->my_string.substring(index_list[i],index_list[i]+1))
.collect(Collectors.joining());
}
}
import java.util.stream.Collectors;
import java.util.Arrays;
class Solution {
public String solution(String my_string, int[] index_list) {
return Arrays.stream(index_list)
.mapToObj(i->my_string.substring(i,i+1))
.collect(Collectors.joining());
}
}
다른 사람들의 정답
charAt
class Solution {
public String solution(String my_string, int[] index_list) {
StringBuilder sb = new StringBuilder();
for(int i : index_list){
sb.append(my_string.charAt(i));
}
return sb.toString();
}
}
StreamAPI
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public String solution(String myString, int[] indexList) {
return Arrays.stream(indexList)
.mapToObj(operand -> String.valueOf(myString.charAt(operand)))
.collect(Collectors.joining());
}
}
my_string.charAt(i)는 char 타입의 값을 반환한다.
char는 기본 데이터 타입이라 Stream의 요소로 사용하기 위해서는 객체로 변환해야 한다.
→ String.valueOf(char) 메서드를 사용하여 char를 String으로 변환해야 한다.
char[]를 이어붙여서 String으로 변환하기
- StringBuilder
StringBuilder sb = new StringBuilder();
char[] chars = {'H', 'e', 'l', 'l', 'o'};
for (char c : chars) {
sb.append(c);
}
String result = sb.toString(); // "Hello"
- String.concat() : String의 concat() 메서드를 사용하여 char를 String으로 변환한 후 이어붙이기
String result = "";
char[] chars = {'H', 'e', 'l', 'l', 'o'};
for (char c : chars) {
result = result.concat(String.valueOf(c));
}
- String.join() : char 배열을 String으로 변환한다
char[] chars = {'H', 'e', 'l', 'l', 'o'};
String result = String.join("", new String(chars));
- Stream - new String(char[])
char[] chars = {'H', 'e', 'l', 'l', 'o'};
String result = new String(chars); // result는 "Hello"
Share article