
문자열
my_string과 문자letter이 매개변수로 주어집니다.my_string에서letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
my_string의 길이 ≤ 100letter은 길이가 1인 영문자입니다.my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.| my_string | letter | result |
|---|---|---|
| "abcdef" | "f" | "abcde" |
| "BCBdbe" | "B" | "Cdbe" |
입출력 예 #1
입출력 예 #2
class Solution {
public String solution(String my_string, String letter) {
// char.At(0)을 사용해서 letter를 뺴기
// 그렇다면 for문을 이용해서 letter를 빼야하는게 맞는것인가.
// -> for문을 사용하려는 이유 : my_string에 있는 문자열을 알기 위해서
StringBuilder sb = new StringBuilder();
for(int i = 0; i < my_string.length(); i++){
if(my_string.charAt(i) != letter.charAt(0)) {
sb.append(my_string.charAt(i));
}
}
return sb.toString();
}
}
class Solution {
public String solution(String my_string, String letter) {
String answer = "";
answer = my_string.replace(letter, "");
return answer;
}
}
String
- 불변객체
- 문자열에
+연산을 하는 경우, 기존 문자열을 수정하지 않고, 새문자열을 생성해서 반환한다.- 문자열 더하기 연산이 많은 경우, 성능이 떨어진다.
StringBuilder
- 가변객체
- 내부의 문자열값을 추가/수정/삭제가 가능하다 (문자열 값 저장소를 참조하지 않는다)
- equals/hashCode 오버라이드가 되어있지 않다 (객체기준으로 처리된다)
StringBuffer
StringBuilder와 동일한 기능을 제공한다.- 멀티쓰레드 환경에서 쓰레드간 동기화(쓰레드 접근 순서를 저장) 기능을 지원한다.
- 싱글쓰레드 환경에서는
StringBuilder가 성능이 우수하다.