만족

[Nodejs] 코딩 테스트 필수 테크닉: String 본문

[Nodejs] 코딩 테스트 필수 테크닉: String

Nodejs Satisfaction 2021. 7. 29. 23:46

자바스크립트로 코딩 테스트를 볼 때 반드시 알아야 하는 String 관련 함수에 대해 알아보자

String.prototype.substring

str.substring(indexStart[, indexEnd])

string에서 indexStart 부터 indexEnd-1까지를 포함하는 새로운 문자열을 반환한다.

(indexEnd -1까지라는 점을 명심하자. indexEnd에 해당하는 문자는 포함되지 않는다)

 

const str = 'Mozilla';

console.log(str.substring(1, 3));
// expected output: "oz"

 

String.prototype.split

str.split([separator[, limit]])

string을 separator를 기준으로 잘라 array를 반환한다.

 

이는 매우 중요하다.

 

코딩 테스트에서 입력값이

1 2 3

처럼 문자열로 주어지는데, 이를 배열로 바꾸기 위해서 이 함수를 사용한다.

const str= "1 2 3"

const nums= str.split(" ");
//nums= ["1", "2", "3"]

 

String.prototype.indexOf

str.indexOf(searchValue[, fromIndex])

string에서 특정 문자열이 어떤 인덱스에 존재하는지를 찾는다.

(순차탐색을 하기 때문에 searchValue가 여러 번 존재할 경우 가장 앞에 있는 부분문자열의 인덱스를 반환한다)

 

존재하지 않을 경우 -1을 리턴한다.

 

const paragraph = 'The quick brown fox jumps over the lazy dog. If the dog barked, was it really lazy?';

const searchTerm = 'dog';
const indexOfFirst = paragraph.indexOf(searchTerm);

console.log(`The index of the first "${searchTerm}" from the beginning is ${indexOfFirst}`);
// expected output: "The index of the first "dog" from the beginning is 40"

console.log(`The index of the 2nd "${searchTerm}" is ${paragraph.indexOf(searchTerm, (indexOfFirst + 1))}`);
// expected output: "The index of the 2nd "dog" is 52"

String.prototype.includes

str.includes(searchString[, position])

string에서 주어진 문자열이 존재하는지를 반환한다.

 

주의! include가 아니라 includes다.

IDE사용을 금지하는 코테에서 이거 왜 자꾸 오류나는지 몰라서 시간 버린적도 있었다...

 

const sentence = 'The quick brown fox jumps over the lazy dog.';

const word = 'fox';

console.log(`The word "${word}" ${sentence.includes(word) ? 'is' : 'is not'} in the sentence`);
// expected output: "The word "fox" is in the sentence"

 

String.prototype.charAt

str.charAt(index)

index 위치에 있는 문자 하나를 반환한다.

 

str[index]와 동일하게 작동한다.

 

const sentence = 'The quick brown fox jumps over the lazy dog.';

const index = 4;

console.log(`The character at index ${index} is ${sentence.charAt(index)}`);
// expected output: "The character at index 4 is q"

 

String.prototype.replace

var newStr = str.replace(regexp|substr, newSubstr|function)

 

string에서 주어진 문자열이나 정규식에 해당하는 문자를 newSubstr로 치환하여 반환한다.

 

const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';

console.log(p.replace('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the dog reacted, was it really lazy?"


const regex = /Dog/i;
console.log(p.replace(regex, 'ferret'));
// expected output: "The quick brown fox jumps over the lazy ferret. If the dog reacted, was it really lazy?"

 

String.prototype.charCodeAt

str.charCodeAt(index)

string에서 index위치에 존재하는 문자의 유니코드 값(utf-16)을 리턴한다.

 

const sentence = 'The quick brown fox jumps over the lazy dog.';

const index = 4;

console.log(`The character code ${sentence.charCodeAt(index)} is equal to ${sentence.charAt(index)}`);
// expected output: "The character code 113 is equal to q"

 

String.prototype.trim()

const greeting = '   Hello world!   ';

console.log(greeting);
// expected output: "   Hello world!   ";

console.log(greeting.trim());
// expected output: "Hello world!";

string의 앞뒤에 존재하는 공백 문자를 제거한다.

 

앞의 공백만 제거하고 싶다면 trimStart(),

뒤의 공백만 제거하고 싶다면 trimEnd()를 사용할 수도 있다.

String.length

const str = 'Life, the universe and everything. Answer:';

console.log(`${str} ${str.length}`);
// expected output: "Life, the universe and everything. Answer: 42"

문자열의 길이를 반환한다.

 

String 비교

두 개의 문자열을 사전 순으로 비교하고자 할 때 > 또는 < 를 사용할 수 있다.

 

const foo1= "가나" > "가다"
//false; 첫 번째 문자는 동일하므로, 두 번째 문자인 나와 다 중 나가 사전순으로 더 앞에 위치하므로 false를 리턴한다.

 

String 반대로 뒤집기

const str= "asd";

str.split('').reverse().join('')
//"dsa"

 

문자열 단위로 쪼갠 뒤, 반대로 뒤집어 다시 string으로 만드는 방법이다.



Comments