String.toUpperCase() / String.toLowerCase()
문자열을 각각 대문자 / 소문자로 변환해 반환한다.
String.split()
split(separator, limit) 형식
String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다.
separator는 문자열이나 정규표현식을 받을 수 있다.
(separator가 두 글자 이상일 경우 그 부분 문자열 전체가 일치해야 끊어진다.)
limit는 끊어진 문자열의 최대 개수를 나타내는 정수이다.
이 매개변수를 전달하면 split() 메서드는 주어진 separator가 등장할 때마다 문자열을 끊지만 배열의 원소가 limit개가 되면 멈춘다.
return 값은 주어진 문자열을 separator마다 끊은 부분 문자열을 담은 Array이다.
const str = 'The quick brown fox jumps over the lazy dog.';
const words = str.split(' ');
console.log(words[3]);
// Expected output: "fox"
const chars = str.split('');
console.log(chars[8]);
// Expected output: "k"
관련한 프로그래머스 코딩테스트 연습문제이다.
<문자열 내 p와 y의 개수>
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
String.repeat()
str.repeat(count)
문자열을 count만큼 반복해 붙인 새로운 문자열을 반환한다.
count : 문자열을 반복할 횟수
return 값 : 현재 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열.
const mood = 'Happy! ';
console.log(`I feel ${mood.repeat(3)}`);
// Expected output: "I feel Happy! Happy! Happy! "
관련한 프로그래머스 코딩테스트 연습문제이다.
<직사각형 별 찍기>
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
위 문제의 정답코드인데, 5번라인을 보면 repeat()을 통해 쉽게 풀이한 것을 확인할 수 있다.
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
const row = '*'.repeat(a);
for(let i =0; i < b; i++){
console.log(row);
}
});
String.match()
str.match(regexp)
문자열이 정규식과 매치되는 부분을 검색한다.
regexp : 정규식 개체이다.
RegExp가 아닌 객체(obj)가 전달되면, new RegExp(obj)를 사용하여
암묵적으로 RegExp로 변환된다.
매개변수를 전달하지 않고 match()를 사용하면, 빈 문자열:[""]이 반환된다.
return 값 : 문자열이 정규식과 일치하면,
일치하는 전체 문자열을 첫 번째 요소로 포함하는 배열을 반환한 다음
괄호 안에 캡처된 결과가 온다.
g 플래그를 사용 하면 전체 정규식과 일치하는 모든 결과가 반환된다.
let arr="1D2S#10S";
let pattern = /(\d+|\D)/g;
let matchArr = arr.match(pattern);
console.log(matchArr); // ['1', 'D', '2', 'S', '#', '10', 'S']
String.localeCompare()
localeCompare(compareString, locales, options)
문자열과 문자열을 비교하는 함수로,
참조 문자열이 정렬 순으로 지정된 문자열 앞 혹은 뒤에 오는지
또는 동일한 문자열인지 나타내는 수치를 반환한다.
compareString : referenceStr가 비교되는 문자열.
locales, options(optional) : 함수의 동작을 사용자 정의하여
응용 프로그램에서 포맷 규칙을 사용할 언어를 지정한다.
return 값 : compareString 전에 referenceStr가 위치하는 경우 -> 음수
compareString 후에 referenceStr가 위치하는 경우 -> 양수
동등할 경우 -> 0
// 반환값 확인
alert('a'.localeCompare('b')); // -1
alert('b'.localeCompare('a')); // 1
alert('b'.localeCompare('b')); // 0
// "a"는 "c" 전에 위치하므로 음수 값을 반환
"a".localeCompare("c"); // -2 혹은 -1 (또는 다른 음수 값)
// 알파벳 순으로 단어 "check"는 "against"보다 뒤에 위치하므로 양수 값을 반환
"check".localeCompare("against"); // 2 혹은 1 (또는 다른 양수 값)
// "a"와 "a"는 서로 동등하므로 중립 값 0을 반환
"a".localeCompare("a"); // 0
관련한 프로그래머스 코딩테스트 연습문제이다.
<문자열 내 마음대로 정렬하기>
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
위 문제를 localeCompare 함수를 사용해 풀이한 코드이다.
function solution(strings, n) {
return strings.sort((s1, s2) => s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
}
String.padStart()
str.padStart(targetLength, padString])
현재 문자열의 시작을 다른 문자열로 채워, 주어진 길이를 만족하는 새로운 문자열을 반환.
채워넣기는 대상 문자열의 시작(좌측)부터 적용.
targetLength : 목표 문자열 길이. 현재 문자열의 길이보다 작다면 채워넣지 않고 그대로 반환.
padString (optional) : 현재 문자열에 채워넣을 다른 문자열.
return 값 : 시작점부터 주어진 문자열로 채워 목표 길이를 만족하는 문자열.
"abc".padStart(10); // " abc"
"abc".padStart(10, "foo"); // "foofoofabc"
"abc".padStart(6, "123465"); // "123abc"
"abc".padStart(8, "0"); // "00000abc"
"abc".padStart(1); // "abc"
String.replaceAll()
replaceAll(pattern, replacement)
pattern의 모든 일치 항목이 replacement로 대체된 새 문자열을 반환한다.
pattern : 문자열이거나 Symbol.replace 메서드가 있는 객체일 수 있다.(ex) 정규식)
replacement : 문자열이거나 함수일 수 있다.
"xxx".replaceAll("", "_"); // "_x_x_x_"
"aabbcc".replaceAll("b", "."); // 'aa..cc'
"aabbcc".replaceAll(/b/g, "."); // "aa..cc"
String.replace()
replace (pattern, replacement)
replace()는 replaceAll()과 다르게 첫번째 찾은 문자열만 치환한다.