문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
입출력 예
my_string | letter | result |
---|---|---|
abcdef | f | abcde |
BCBdbe | B | Cdbe |
charAt를 사용하여 letter의 위치를 찾고 letter 외 문자를 substring으로 붙이는 방법으로 풀려했다. 그런데 두 가지 문제가 있어 포기하고
단순하게 자바 문자열 삭제 방법을 검색하니 replaceAll(문자 교체)라는 코드가 있어 간단히 해결되었다.
1안(substring) => 오류
int val = 0;
* letter와 같은 문자의 위치를 반복문 통해 찾음
for(int i=0; i<my_string.length(); i++ ){
if(letter.equals(my_string.charAt(i))){
val = i;
}
}
* letter를 제외한 앞/뒤 문자를 합침
answer = my_string.substring(0,val) + my_string.substring(val+1,my_string.length);
2안(replaceAll) => 해결!
String answer = my_string.replace(letter,"");
String str = "ABCD";
char cha = str.charAt(3); => D
String str = "ABCDEFG";
* 문자
String str2 = str.substring(4); => EFG
* 문자열 : 0의 위치부터 3 전까지의 문자를 가져옴
String str3 = str.substring(0,3); => ABC
String str = "ABCDEFG";
* 문자열 변환
replace(바꾸고 싶은 문자,바꿀문자);
String str2 = str.replace("G","g"); => ABCDEFg
String str3 = str.replace("B",""); => ACDEFG
* 문자열에서 찾은 첫번째 문자만 변환
replaceFirst(바꾸고 싶은 문자,바꿀문자)
String str = "aaabbbsdf";
String str2 = str.replace("a","A"); => Aaabbbsdf
* replace과 유사하나 특수문자를 넣으면 다양한 결과가 나옴
replaceAll(바꾸고 싶은 문자,바꿀문자)
String str = "a.abbbs.f";
String str2 = str.replaceAll(".","0"); => a0abbbs0f";
String str2 = str.replaceAll(".","A"); => AAAAAAAAA";
String str = "1245예시";
String str3 = str.replaceAll("[0-9]","A"); => 굿"; => 굿굿굿굿예시