class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
for(int i=0; i<my_string.length(); i++) {
if(i == num1) {
answer += my_string.charAt(num2);
}
else if(i == num2) {
answer += my_string.charAt(num1);
}
else answer += my_string.charAt(i);
}
return answer;
}
}
내가 몰랐던 함수를 사용했거나, 간결해보이는 다른 풀이를 가져왔다.
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
char[] ch = my_string.toCharArray();
ch[num1] = my_string.charAt(num2);
ch[num2] = my_string.charAt(num1);
answer = String.valueOf(ch);
return answer;
}
}
배열에 넣어서 인덱스로 교환해줘도 된다. 그럼 반복문 필요없다.
여기서 몰랐던건, String.valueOf()의 파라미터로 배열이 들어가도된다!!
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
class Solution {
public String solution(String myString, int num1, int num2) {
List<String> list = Arrays.stream(myString.split("")).collect(Collectors.toList());
Collections.swap(list, num1, num2);
return String.join("", list);
}
}
list에서 swap연산을 사용해서 풀수도있다!