본문 바로가기

Tech/[Lang] JS & TS

문자열 메서드

Hi, There!
안녕하세요, 바오밥입니다.


목차

  1. 개요
  2. 본문
  3. Reference

개요

코드 작성 시 많이 사용되는 문자열 메서드를 정리하였습니다.


본문

 

', ", `의 사용 용도

' 은 " 을 표현할 때 사용됩니다. 특히 HTML 코드를 표현할 때는 ' 를 사용하여 감싸는 것이 편리합니다.

" 은 ' 을 표현할 때 사용됩니다. 특히 영어 문장을 표현할 때 " 를 사용하여 감싸는 것이 편리합니다.

let html = '<div class="box_title">제목 영역</title>'
let desc = "It's 3 o'clock!"

 

` 은 ${} 를 통해 변수를 표현하거나 수식 계산이 필요할 때 사용합니다.

let name = 'Mike';
console.log(`안녕하세요, ${name}님`) // "안녕하세요, Mike님"
console.log(`1+1은 ${1+1}입니다.`) // "1+1은 2입니다."

 

여러 줄을 표현할 때도 `을 사용합니다. ' 또는 " 도 표현은 가능하지만 \n 을 사용해야 합니다.

const desc1 = "화창한 \n 하루"
const desc2 = '화창한 \n 하루'
const desc3 = `화창한
하루`

 

문자열 관련 메서드

문자열의 길이와 특정 위치 접근 - length & 인덱스

문자열의 길이를 알고 싶을 때는 length를 사용하면 됩니다.

const desc1 = "화창한 하루"
console.log(desc1.length) // 6

 

알아낸 문자열 길이를 이용하여 배열처럼 인덱스로 특정 위치에 접근할 수 있습니다.

const desc1 = "화창한 하루"
console.log(desc1.length) // 6
console.log(desc1[0]) // "화"

 

그러나 배열처럼 인덱스에 접근하여 수정하는 것은 할 수 없습니다.

const desc1 = "화창한 하루"
console.log(desc1.length) // 6
desc1[0] = "안"
console.log(desc1[0]) // "화", 안으로 수정되지 않습니다.

 

문자열 대/소문자 변환 - toUpperCase() & toLowerCase()

메서드를 통해 문자열 전체를 대/소문자를 변환할 수 있습니다.

const desc1 = "i m HAPPY"
console.log(desc1.toUpperCase()) // I M HAPPY
console.log(desc1.toLowerCase()) // i m happy

 

인덱스 번호 찾기 - indexOf()

특정 문자열이 위치한 첫 인덱스 값을 찾을 때 사용합니다.

let desc = "Hi guys. Nice to meet you"
console.log(desc.indexOf('guys')) // 3

 

if문과 함께 사용할 때는 문자열의 위치를 고려하여 인덱스 값에 1를 더해줍니다.

let desc = "Hi guys. Nice to meet you."
if (desc.indexOf('Hi')+1) {
  console.log("Hi가 포함되어 있습니다.")
}

 

특정 범위의 문자열 추출1 - slice()

특정 범위의 문자열을 추출할 때 사용합니다.

인수를 하나만 입력했을 경우, 첫 번째 인수를 기점으로 문자열을 반환합니다.

let desc = "Hi guys."
console.log(desc.slice(1)) // "i guys." 

 

인수를 두 개 입력했을 경우, 첫 번째 인수 부터 두 번째 인수 직전까지 문자열을 반환합니다.

let desc = "Hi guys."
console.log(desc.slice(1,4)) // "i g"

 

인수를 음수로 입력할 경우 뒤에서부터 인덱스를 카운트 합니다.

let desc = "Hi guys."
console.log(desc.slice(2,-1)) // " guys"
// 인덱스 2부터 마지막인덱스-1 직전까지 출력

 

특정 범위의 문자열 추출2 - substring()

특정 범위의 문자열을 추출할 때 사용합니다.

slice()와 유사하게 동작하지만 음수를 허용하지 않습니다.

또한, 첫 번째 인수와 두 번째 인수를 변경해도 결과 값이 동일합니다.

let desc = "Hi guys."
console.log(desc.substring(2, 5)) // " gu"
console.log(desc.substring(5, 2)) // " gu"

 

특정 범위의 문자열 추출3 - substr()

특정 범위의 문자열을 추출할 때 사용합니다. substring()와는 작동 방식이 전혀 다릅니다.

첫 번째 인수 값을 기준으로 두 번째 인수 값만큼 추출하는 방식입니다.

let desc = "Hi guys."
console.log(desc.substr(3, 1)) // "g"

 

공백 제거 - trim()

문자열의 앞/뒤 공백을 제거할 때 사용합니다. 주로 입력 값에서 공백이 전달 된 경우를 예측하여 많이 사용합니다.

이때, 문자열 사이에 존재하는 공백은 제거하지 않습니다.

let desc = "Hi guys.     "
console.log(desc.trim()) // "Hi guys."

 

문자열 반복 - repeat()

문자열을 반복하여 실행할 때 많이 사용됩니다.

let stringEx = "abcd"
console.log(stringEx.repeat(3)) // "abcdabcdabcd"

 

아스키 코드와 문자열 - codePointAt() & fromCodePoint()

아스키 코드 값을 기준으로 문자열 간 비교가 가능합니다.

아스키 코드 표를 외울 필요는 없으며, 소문자가 대문자 보다 더 크다는 것을 숙지하고 있으면 유용합니다.

또한, A → Z 방향으로 커진다는 점도 숙지하고 있어야 합니다.

console.log("a" < "c") // true
console.log("A" < "c") // true

 

아스키 코드 값을 반환하는 메서드와 아스키 코드 값을 통해 문자를 반환하는 메서드가 있습니다.

console.log("a".codePointAt()) // 97
console.log(String.fromCodePoint(97)) // "a"

 

문자열 메서드를 이용한 간단한 문제

문제1. 아래와 같이 주어진 목차에서 번호를 제거하고 새로운 리스트로 저장하여라.

let list = [
  "01. 개요",
  "02. 본문1",
  "03. 본문2",
  "04. 마무리",
]

 

문제1. 정답코드

let list = [
  "01. 개요",
  "02. 본문1",
  "03. 본문2",
  "04. 마무리",
]

let newList = [];
for (i=0;i<list.length;i++) {
  newList.push(list[i].slice(4))
}

console.log(newList)

 

문제2. 금칙어 '콜라'의 여부를 판단하는 함수를 작성하여라.

문제2. 정답코드

 

function hasCola(str) {
  if(str.indexOf('콜라')+1){
    console.log("해당 문장은 금칙어가 존재합니다.")
  } else {
    console.log("해당 문장은 금칙어가 존재하지 않아 통과합니다.")
  }
}

const desc1 = "콜라야 안녕"
const desc2 = "사이다야 안녕"

hasCola(desc1)
hasCola(desc2)

 

 

 


Reference

 

'Tech > [Lang] JS & TS' 카테고리의 다른 글

배열 메서드 (2)  (0) 2021.09.14
배열 메서드 (1)  (0) 2021.09.13
숫자형과 수학 메서드  (0) 2021.09.02
유일성을 보장하는 자료형, 심볼형  (0) 2021.08.31
객체 메서드와 계산된 프로퍼티  (0) 2021.08.30