문자열의 숫자로 변환
Number()
숫자형 문자열을 숫자로 변환시켜준다.
단항 연산자 +,-
주어진 값이 정수가 아닌 (숫자 형태의)문자열로 오게 될 경우 숫자로 변경 시켜준다.
관련 문제
프로그래머스 - 문자열을 정수로 변환하기
String.prototype.split()
split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.
구문
split();
split(separator);
split(separator, limit);매개변수
separator
원본 문자열을 끊어야 할 부분을 나타내는 문자열을 나타냅니다. 실제 문자열이나 정규 표현식을 받을 수 있습니다.
separator가 생략 되거나 str에 등장하지 않을 경우, 반환되는 배열은 원본 문자열을 유일한 원소로 가집니다.
separator가 빈 문자열일 경우 str 각각의 문자가 배열의 원소 하나씩으로 변환됩니다.
limit
끊어진 문자열의 최대 개수를 나타내는 정수입니다.
split() 메서드는 주어진
separator가 등장할 때마다 문자열을 끊지만 배열의 원소가limit개가 되면 멈춥니다.
반환값
주어진 문자열을 separator마다 끊은 부분 문자열을 담은 Array
예시
const myString = 'hello world';
const splits = myString.split(' ');
console.log(splits);
// ↪ ['hello','world']관련문제
프로그래머스 - 공백으로 구분하기(1), 공백으로 구분하기(2)
String.prototype.indexOf()
indexOf() 메서드는 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.
구문
str.indexOf(searchValue, fromIndex)매개변수
searchValue
찾으려는 문자열입니다.
아무 값도 주어지지 않으면"undefined"를 찾으려는 문자열로 사용합니다.
fromIndex
문자열에서 찾기 시작하는 index 값입니다.
기본값은 0이며, 문자열 전체를 대상으로 찾게 됩니다.
만약 값이 음의 정수이면 전체 문자열을 찾게 됩니다.
만약
fromIndex >= str.length이면, 검색하지 않고 바로 -1을 반환
반환값
searchValue의 첫 번째 등장 인덱스
예시
"Blue Whale".indexOf("Blue"); // returns 0
"Blue Whale".indexOf("Blute"); // returns -1
"Blue Whale".indexOf("Whale", 0); // returns 5
"Blue Whale".indexOf("Whale", 5); // returns 5
"Blue Whale".indexOf("Whale", 7); // returns -1
"Blue Whale".indexOf(""); // returns 0
"Blue Whale".indexOf("", 9); // returns 9
"Blue Whale".indexOf("", 10); // returns 10
"Blue Whale".indexOf("", 11); // returns 10관련 문제
프로그래머스 - 숫자 찾기, 문자열이 몇 번 등장하는지 세기
String.prototype.replace(),
String.prototype.replaceAll()
pattern의 단일, 일부 혹은 모든 일치 항목이 replacement로 대치된 새로운 문자열을 반환합니다.
구문
replace(pattern, replacement)
replaceAll(pattern, replacement)매개변수
pattern
문자열이거나
Symbol.replace메서드가 있는 객체일 수 있습니다.
replacement
문자열이나 함수가 될 수 있습니다.
반환 값
패턴의 단일, 일부 혹은 모든 일치 항목이 명시된 대체 문자열로 대치된 새로운 문자열을 반환합니다.
예시
let myString = 'aaxxccxx'
let replacement = 'bb'
console.log(myString.replace('xx',replacement)) // aabbccxx
console.log(myString.replaceAll('xx',replacement)) // aabbccbb관련문제
프로그래머스 - A 강조하기
String.prototype.toUpperCase(),
String.prototype.toLowerCase()
toUpperCase() - 문자열을 대문자로 변환해 반환합니다.
toLowerCase() - 문자열을 소문자로 변환해 반환합니다.
구문
str.toUpperCase();
str.toLowerCase();매개변수
없음
반환값
호출 문자열을 소문자로 변환한 새로운 문자열
예시
console.log("alphabet".toUpperCase()); // 'ALPHABET'
console.log("ALPHABET".toLowerCase()); // 'alphabet'관련문제
String.prototype.includes()
includes() 는 사용하고자 하는 문자열에 특정 문자가 포함되어있는지 확인하는 용도로 사용될 수 있는 내장 함수 입니다.
반환 형은 boolean으로 특정 문자가 포함되어 있다면 true, 포함되어있지 않다면 false를 반환합니다.
예시
let myString = 'hello world'예시 1)
myString 안에 “hello world” 가 모두 포함 되어있기 때문에 true를 반환합니다.
console.log(myString.includes("hello world")); // true예시 2)
myString 안에 “hello”가 포함 되어있기 때문에 true를 반환합니다.
console.log(myString.includes("hello")); // true예시 3)
myString 안에 “o w”가 포함 되어있기 때문에 true를 반환합니다.
console.log(myString.includes("o w")); // true예시 4)
myString 안에 ‘‘helle’’는 포함되어있지 않기 때문에 false를 반환합니다.
console.log(myString.includes("helle")); // false예시 5)
해당 예제는 시작할 위치 속성으로 3이 들어갔습니다.
이러한 위치 관련 속성을 볼 때 글자와 글자 사이를 기준으로 세면 편리합니다.
position의 속성은 0 부터 시작을 하게 되기 때문에 “h”의 앞부분이 0 이라고 한다면
3 기준 시작하게 되는 부분은 “hel(이곳)lo world” 이 되게 됩니다.
따라서 뒤의 “lo world” 기준으로 함수는 탐색을 하게 되고 world 는 해당 부분에 존재하기 때문에 true를 반환하게 됩니다.
console.log(myString.includes("world",3)); // true예시 6) Quiz!
해당 예제는 시작할 위치 속성으로 ?이 들어갔습니다.
? 기준 시작하게 되는 부분은 (이곳)“hello world” 이 되게 됩니다.
따라서 뒤의 “hello world” 기준으로 함수는 탐색을 하게 되고 world 는 해당 부분에 존재하지 않기 때문에 false를 반환하게 됩니다
console.log(myString.includes("world",?)); // false구문
myString.includes(특정문자, 시작할 위치)매개변수
특정문자
이 문자열에서 찾을 다른 문자열입니다.
시작할 위치
특정문자를 찾기 시작할 위치 (기본값 0)
반환값
본문에서 특정 문자열을 찾아내면 true. 실패하면 false.
관련 문제
프로그래머스 - 원하는 문자열 찾기
String.prototype.substring()
substring() 메소드는 문자열의 일부분을 반환 시켜주는 내장 함수입니다.
반환형은 string 으로 시작 인덱스로부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.
예시
위치 관련 속성을 볼 때 글자와 글자 사이를 기준으로 세면 편리합니다.
let myString = 'hello world'예시 1)
시작 인덱스와 종료 인덱스를 통해 해당되는 문자열이 어디부터 어디까지 인지 정확히 짚고 넘어가야 합니다.
(0, 1) 은 hello world 중 h 의 앞과 뒤를 나타냅니다. 따라서 h 를 반환해줍니다.
(0, 6) 에 해당하는 문자열은 “hello ” 입니다. 따라서 hello 를 반환해줍니다.
띄어쓰기가 포함되어있다는 것을 인지하셔야 합니다.
console.log(myString.substring(0, 1)); // h
console.log(myString.substring(0, 6)); // hello예시 2)
만약 시작 인덱스가 종료 인덱스보다 큰 경우, substring() 메서드는 두 개의 인자를 바꾼것과 동일하게 실행됩니다.
따라서 아래의 예제의 경우 시작인덱스 1 이 종료인덱스 0 보다 크기 때문에 예시 1) 과 같이 동작하게 됩니다.
console.log(myString.substring(1, 0)); // h 예시 3)
(3, 5) 에 해당하는 문자열은 “lo” 입니다. 따라서 “lo” 를 반환해줍니다.
console.log(myString.substring(3,5)); // lo예시 4)
substring(4) 와 같이 종료 인덱스가 존재하지 않는 경우 나머지 문자열을 전부 반환한다 라는 의미로 해석하면 됩니다.
따라서 4위치에 있는 “o” 부터 나머지 전부인 “o world” 를 반환하게 됩니다.
console.log(myString.substring(4)); // o world예시 5)
substring(0, 11) 의 경우 myString.length 와 길이가 같아지게 됩니다.
substring(0, 15) 의 경우 myString.length 의 길이를 넘어서게 됩니다.
위의 두 경우 모두 원본 문자열을 그대로 반환하게 됩니다.
console.log(myString.substring(0, 11)); // hello world
console.log(myString.substring(0, 15)); // hello world구문
myString.substring(시작인덱스, 종료인덱스)매개변수
시작인덱스
문자열을 어디서 부터 끊어주어야 할지 결정하는 인덱스
종료인덱스
옵션 값입니다.
반환문자열의 마지막 인덱스 (포함하지 않음.)
만약 시작인덱스가 종료인덱스 보다 큰 경우,
substring()메서드는 마치 두 개의 인자를 바꾼 듯 작동하게 된다.
반환값
기존 문자열의 부분 문자열을 반환합니다.
관련 문제
프로그래머스 - 부분 문자열 이어 붙여 문자열 만들기
String.prototype.slice()
slice() 메소드는 문자열의 일부분을 반환 시켜주는 내장 함수입니다.
반환형은 string 으로 시작 인덱스로부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.
예시
위치 관련 속성을 볼 때 글자와 글자 사이를 기준으로 세면 편리합니다.
let myString = 'hello world'예시 1)
시작 인덱스와 종료 인덱스를 통해 해당되는 문자열이 어디부터 어디까지 인지 정확히 짚고 넘어가야 합니다.
(0, 1) 은 hello world 중 h 의 앞과 뒤를 나타냅니다. 따라서 h 를 반환해줍니다.
(0, 6) 에 해당하는 문자열은 “hello ” 입니다. 따라서 hello 를 반환해줍니다.
띄어쓰기가 포함되어있다는 것을 인지하셔야 합니다.
console.log(myString.slice(0, 1)); // h
console.log(myString.slice(0, 6)); // hello예시 2)
만약 시작 인덱스가 종료 인덱스보다 커서 위치가 뒤에 있는 경우, slice() 메서드는 빈문자열“” 을 반환합니다. 따라서 아래의 예제의 경우 시작인덱스 1 이 종료인덱스 0 보다 크기 때문에 “” 을 반환합니다.
console.log(myString.slice(1, 0)); // ""예시 3)
(3, 5) 에 해당하는 문자열은 “lo” 입니다. 따라서 “lo” 를 반환해줍니다.
console.log(myString.slice(3,5)); // lo예시 4)
substring(4) 와 같이 종료 인덱스가 존재하지 않는 경우 나머지 문자열을 전부 반환한다 라는 의미로 해석하면 됩니다.
따라서 4위치에 있는 “o” 부터 나머지 전부인 “o world” 를 반환하게 됩니다.
console.log(myString.slice(4)); // o world예시 5)
substring(0, 11) 의 경우 myString.length 와 길이가 같아지게 됩니다.
substring(0, 15) 의 경우 myString.length 의 길이를 넘어서게 됩니다.
위의 두 경우 모두 원본 문자열을 그대로 반환하게 됩니다.
console.log(myString.slice(0, 11)); // hello world
console.log(myString.slice(0, 15)); // hello world예시 6)
시작 인덱스만 음수인 경우
문자열의 마지막 커서를 0 기준으로 반대로 커서위치를 셉니다.
(-3)은 시작인덱스가 -3 이므로 커서를 놓게 되었을 때 ‘hello wo(여기)rld’ 커서 위치가 존재하게 됩니다. 종료 인덱스가 존재하지 않으므로 예시 4)와 같이 나머지 문자열을 모두 나타내게 되므로 ‘rld’가 됩니다.
console.log(myString.slice(-3)); // rldJavaScript
Copy
예시 7)
시작 인덱스가 음수이고 종료인덱스가 음수인 경우
문자열의 마지막 커서를 0 기준으로 반대로 커서위치를 셉니다.
(-3, -1)은 시작인덱스가 -3 이므로 커서를 놓게 되었을 때 ‘hello wo(여기)rld’ 커서 위치가 존재하게 됩니다. 종료 인덱스는 -1이므로 ‘hello worl(여기)d’ 커서가 위치하게 됩니다.
따라서 해당되는 문자열은 ‘rl’ 입니다.
console.log(myString.slice(-3, -1)) // rlJavaScript
Copy
예시 8)
종료인덱스만 음수인 경우
시작 인덱스는 0 이므로 ‘(여기)hello world’ 커서가 위치하게 됩니다.
종료 인덱스는 -1 이므로 ‘hello worl(여기)d’ 커서가 위치하게 됩니다.
따라서 해당되는 문자열은 hello worl 입니다.
console.log(myString.slice(0, -1)) // hello worlJavaScript
Copy
구문
myString.slice(시작인덱스, 종료인덱스)매개변수
시작인덱스
문자열을 어디서 부터 끊어주어야 할지 결정하는 인덱스
종료인덱스
옵션 값입니다.
반환문자열의 마지막 인덱스 (포함하지 않음.)
만약 시작인덱스가 종료인덱스 보다 큰 경우,
substring()메서드는 마치 두 개의 인자를 바꾼 듯 작동하게 된다.
반환값
기존 문자열의 부분 문자열을 반환합니다.
관련 문제
프로그래머스 - 부분 문자열 이어 붙여 문자열 만들기
String.prototype.concat()
concat() 메서드는 매개변수로 전달된 모든 문자열을 호출 문자열에 붙인 새로운 문자열을 반환해주는 내장함수입니다.
반환형은 string으로 주어진 문자열을 모두 붙인 새로운 문자열을 반환합니다.
예제
let myStringOne = 'hello';
let myStringTwo = 'world';예제 1)
console.log(myStringOne.concat(myStringTwo)) // helloworld예제 2)
console.log(myStringOne.concat(' ',myStringTwo)) // hello world예제 3)
console.log(myStringTwo.concat(' ',myStringOne)) // world hello구문
myStringOne.concat(myStringTwo, [ ...stringN])매개변수
합칠 문자열
반환값
주어진 문자열을 모두 붙인 새로운 문자열.
성능
concat() 메서드보다 할당 연산자 (+, +=)를 사용하는게 더 좋습니다. 성능 테스트 결과에 따르면 할당 연산자의 속도가 몇 배 빠릅니다.