Develop
[프로그래머스] 문자열 겹쳐쓰기 본문
문제
내 풀이
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = "";
// answer = my_string.replace(my_string.substring(s,overwrite_string.length()+s),overwrite_string);
// System.out.println(answer);
answer = my_string.substring(0,s) + overwrite_string + my_string.substring(overwrite_string.length()+s);
return answer;
}
}
느낀점
처음에는 replace를 사용하여 풀려고 했으나 테스트6번에서 계속 오류가 났고
replace가 바꾸려는 문자와 같은 문자가 여러개 있으면 여러번 바꾼다는 특성을 알고 코드를 바꿨다
replace로 푼 코드는 주석처리하고 substring만 사용하여 문자열을 이어붙였다.
참고할 replace 내용
- String replace(char oldChar, char newChar)
문자열내에 있는 모든 oldChar를 newChar로 바꾼 문자열을 반환한다
- String replace(CharSequence target, CharSequence replacement)
문자열내에 있는 모든 target 문자열을 replacement문자열로 바꾼 문자열을 반환한다
- String replaceAll(String regex, String replacement)
문자열내에 있는 정규식 regex와 매치되는 모든 문자열을 replacement문자열로 바꾼 문자열을 반환한다
- String replaceFirst(String regex, String replacement)
문자열내에 있는 정규식 regex와 매치되는 첫번째 문자열을 replacement 문자열로 바꾼 문자열을 반환한다
다른 풀이1
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String before = my_string.substring(0, s);
String after = my_string.substring(s + overwrite_string.length());
return before + overwrite_string + after;
}
}
느낀점
바로 더해서 return하는 방법이 있네
변수명도 주어진 것이 아니라 before과 after로 바꿔서 사용하여
어떤 내용인지 알아보기 쉽다
다른 풀이2
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
char[] my_chars = my_string.toCharArray();
char[] overwrite_chars = overwrite_string.toCharArray();
for (int i=0; i<overwrite_chars.length; i++) {
my_chars[s + i] = overwrite_chars[i];
}
return String.valueOf(my_chars);
}
}
느낀점
이렇게 배열로 만들어서 해당 위치에 원하는 값을 넣는 방법도 있네
코드를 보면 알지만 이렇게 막상 사용하는 것은 쉽지않다..
'개인 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 곱하기 (0) | 2024.01.12 |
---|---|
[프로그래머스] 문자열 섞기 (1) | 2024.01.11 |
[프로그래머스] 문자열 돌리기 (0) | 2024.01.10 |
[프로그래머스] 홀짝 구분하기 (1) | 2024.01.09 |
[프로그래머스] 특수문자 출력하기 (0) | 2024.01.09 |