🗃️javascript/프로그래머스

특정 문자 제거하기(Lv.0)(split(),replace(),repalceAll() )

하얀성 2022. 12. 29. 10:17
<문제>

문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.


제한사항
  • 1 ≤ my_string의 길이 ≤ 100
  • letter은 길이가 1인 영문자입니다.
  • my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.
  • 대문자와 소문자를 구분합니다.

입출력 예my_stringletterresult
"abcdef" "f" "abcde"
"BCBdbe" "B" "Cdbe"

입출력 예 설명

입출력 예 #1

  • "abcdef" 에서 "f"를 제거한 "abcde"를 return합니다.

입출력 예 #2

  • "BCBdbe" 에서 "B"를 모두 제거한 "Cdbe"를 return합니다.

<제출답안>

function solution(my_string, letter) {
    return my_string.split('').filter((x) => x !== letter).join('')
}

 

1.replace(제거할단어, 대체단어) 사용해서 풀려햇으나, 반복문 적용 실패. -> repalceAll 로 가능함.

2. 배열로 바꾼 후 제거해서 풀기로 방향수정.

3. 누가 filter이용해서 문자 추출법 하는 법을 저렇게 신박하게 풀어놨더라.

 


<보충>

function solution(my_string, letter) {
    const answer = my_string.split(letter).join('')
    return answer;
}

이렇게 split을 통해 풀수 있다.

그런데 split 안의 letter는 뭐란 말인가..

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ>

 

split(기준) 기준이 되는 값을 기준으로 쪼개서 출력하는 함수. letter 빼고 양옆으로 쪼개서 출력시킨다.

''은 쪼개는게 없는 것이었고, ','은  따옴표를 기준으로 쪼개는 것이다.

 


replace()와 replaceAll()의 차이점

replace(str1, str2)는 어떤 문자열 str1을 다른 문자열 str2로 변환하는 함수입니다.

replaceAll(pattern, str1)도 replace()처럼 어떤 문자열을 다른 문자열로 변환하지만, 기본적으로 인자로 전달된 정규표현식 패턴(pattern)과 일치하는 문자열들을 다른 문자열(str1)로 변환합니다.

public String replace(char oldChar, char newChar)

public String replaceAll(String regex, String replacement)

 

 

<split() 보충>

1.2 구분자와 limit을 인자로 전달

limit은 구분자로 분리할 문자열의 개수가 됩니다. limit으로 0을 전달하면 빈 배열이 리턴되며, 1을 전달하면 구분자로 1개의 문자열만 잘라서 배열로 리턴합니다.

let str = 'Hello, World, Javascript';

console.log(str.split(',', 0));
console.log(str.split(',', 1));
console.log(str.split(',', 2));
console.log(str.split(',', 3));

Output:

[]
[ 'Hello' ]
[ 'Hello', ' World' ]
[ 'Hello', ' World', ' Javascript' ]

1.3 구분자와 limit을 전달하지 않음

인자로 아무것도 전달하지 않으면 문자열 전체를 배열에 담아 리턴합니다. 길이가 1인 배열이 됩니다.

let str = 'Hello, World, Javascript';

console.log(str.split());

Output:

[ 'Hello, World, Javascript' ]

1.4 정규표현식(Regex)으로 문자열 자르기

아래와 같이 정규표현식을 인자로 전달하여 문자를 자를 수 있습니다.

let str = 'Hello,World?Java!script';
let arr = str.split(/[!,?]/);

console.log(arr);

Output:

[ 'Hello', 'World', 'Java', 'script' ]

1.5 Destructuring

아래와 같이 [a, b, c]처럼 리턴받으면, 각각의 변수에 값이 저장됩니다.

let str = 'Hello World Javascript';

let [a, b, c] = str.split(' ');

console.log(a);
console.log(b);
console.log(c);

Output:

Hello
World
Javascript

출처: https://codechacha.com/ko/javascript-how-to-substring/