[프로그래머스] Lv.0 인덱스 바꾸기 (문자열의 특정 위치의 문자 변경)
[프로그래머스] Lv.0 인덱스 바꾸기 (문자열의 특정 위치의 문자 변경)
May 22, 2024


답
◽ StringBuilter
class Solution {
public String solution(String my_string, int num1, int num2) {
char num1ch = my_string.charAt(num1);
char num2ch = my_string.charAt(num2);
StringBuilder sb = new StringBuilder();
sb.append(my_string);
sb.setCharAt(num1, num2ch);
sb.setCharAt(num2, num1ch);
String answer = sb.toString();
return answer;
}
}
풀이
◽과정 1 👉 실패
class Solution {
public String solution(String my_string, int num1, int num2) {
char num1ch = my_string.charAt(num1);
char num2ch = my_string.charAt(num2);
String answer = my_string
.replace(num1ch, num2ch) // hlllo
.replace(num2ch, num1ch); // ⚠️ heeeo
return answer;
}
}
변경할 문자를 char로 깊은 복사 후,
replace( )
를 사용하여 문자를 변경하도록 시도했다.하지만 replace( )는
문자열 내의 모든 특정 문자를 변경
하고, 괄호 속 입력 값은 바꿀 문자의 위치가 아닌 바꿀 문자를 지정
하는 것이기 때문에 원하는 결과가 나오지 않았다.◽ 과정 2 👉 성공
다른 사람의 풀이
◽ char[ ]
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;
}
}
Share article