[JS] 문자열의 기본 속성과 기초 메소드

somin·2021년 6월 16일

JavaScript

목록 보기
4/16

문자열

  • 문자열 : string
  • 문자 하나 : character -> char

1. str[index]

  • index로 접근 가능
  • index : 0부터 시작
  • 문자를 바꿀 수 없음
var str = 'KKAKKA';
console.log(str[0]); //K

str[0] = 'G'; //K가 G로 바뀌지 않음(에러 발생X)

2. +연산자

  • string 타입과 다른 타입 사이에 +연산자를 쓰면 string 형식으로 변환
var str1 = 'BlackCat';
var str2 = 'KKAKKA';
var str3 = '7';

console.log(str1 + str2); //'BlackCatKKAKKA'
console.log(str1 - str2); //NaN (-연산자는 사용 불가 )
console.log(str3 + 1) //'71'(+연산자의 경우 string 형식으로 변환되어 이어붙음)
console.log(str3 - 1) //'6'("숫자"에 -연산자를 사용하면 뺄셈O)
str1.concat(str2, str3); //'BlackCatKKAKKA7'

3. length Property

  • 문자열의 전체 길이를 반환
var str = 'KKAKKA';
console.log(str.length); //6

메소드

1) str.indexOf(searchValue)

  • argument : 찾고자 하는 문자열
  • return value : 처음으로 일치하는 index, 찾고자 하는 문자열이 없으면 -1
  • lastIndexOf : 문자열 뒤에서 부터 찾음
'Black Cat'.indexOf('Black'); //0 -> 0번째부터 등장
'Black Cat'.indexOf('Cat'); //6 -> 6번째부터 등장
'Black Cat'.indexOf('black'); //-1
'Black Cat Cat'.indexOf('Cat'); //7 -> 6번째부터 등장
'Black Cat'.lastIndexOf('a'); //7 -> 뒤에서 부터 찾음, 해당하는 index

*띄어쓰기도 index에 포함

*str.includes(searchValue) : true / false 리턴

'Black Cat'.includes('Black'); //true
'Black Cat'.includes('black'); //false

2) str.split(seperator)

  • argument : 분리 기준이 될 문자열
  • return value : 분리된 문자열이 포함된 배열
  • join() : 배열로 분리된 문자열을 연결
var str = 'Hello black cat KKAKKA';
console.log(str.split(' ')); //공백을 기준으로 분리
//['Hello', 'black', 'cat', 'KKAKKA']

str.split(" ").join("")
//"HelloBlackCat"

str.split(" ").join(" ")
//"Hello Black Cat"

*csv형식을 처리할 때 유용 : 줄바꿈(\n), 탭문자(\t) 등으로 분리 가능 -> csv.split('\n')

3) str.substring(start, end)

  • argument : 시작 index, 끝 index
  • return value : 시작과 끝 index 사이의 문자열
  • 구간에 있는 문자열을 반환
  • start, end 순서 상관 없음
  • 음수는 0으로 취급
  • 범위 초과시 마지막까지로 취급
  • 종료 index(end)를 입력하지 않으면, 시작 index부터 문자열의 끝까지를 리턴
  • start > end인 경우 start 값과 end 값을 바꾸어서 처리
var str = 'BlackCat';
console.log(str.substring(0,3)); //(0, 3) : 0, 1, 2 반환
//'Blc'

var str = 'BlackCat';
console.log(str.substring(3,0)); //(0, 3)으로 바뀜
//'Blc'

4) str.substr(start, number)

  • argument : 시작 index, 개수
  • return value : 시작 index부터 number(개수)
var str = 'BlackCat';
console.log(str.substr(2,4)); //2번 index부터 4개 반환
//'ackC'

var str = 'BlackCat';
console.log(str.substr(-2,2)); //뒤에서 2번째인 a를 시작으로 2개 반환
//'at'

5) str.slice(start, end)

  • argument : 시작 index, 끝 index
  • return value : 시작과 끝 index 사이의 문자열
  • start 값이 str의 길이와 같거나 큰 수 입력시 ""을 리턴
  • start 값이 음수일 경우 뒤에서 부터 찾아 해당 index부터 시작값으로 취급
  • end 값이 음수일 경우 뒤에서 부터 찾아 해당 index부터 끝 값으로 취급
  • 종료 index(end)를 입력하지 않으면, 시작 index부터 문자열의 끝까지를 리턴
  • start > end인 경우 " "을 리턴
var str = 'BlackCat';
console.log(str.slice(0,3)); //(0, 3) : 0, 1, 2 반환
//'Blc'

var str = 'BlackCat';
console.log(str.slice(3,0));
//' '

var str = 'BlackCat';
console.log(str.slice(-7,5)); //뒤에서 7번째인 'l'이 시작값이 되어 사실상(1, 5)
//'lack'

6) str.toLowerCase() / str.toUpperCase()

  • argument : 없음
  • return value : 대문자를 소문자로, 소문자를 대문자로 변환
let Cat = 'KKAKKA'
'KKAKKA'.toLowerCase(); //'kkakka'

console.log(Cat) //'KKAKKA'

*immutable : 원본은 변하지 않음 -> 모든 string method는 immutable

7) str.trim()

  • 앞 뒤 공백 제거
let str = '   KKAKKA       '
str.trim(); //'kkakka'

8) str.repeat(n)

  • n번 반복
let str = 'KKAKKA!'
str.repeat(3); //'KKAKKA!KKAKKA!KKAKKA!'

9) str.repalce("a", "b")

  • 문자열에서 a을 찾아 b으로 바뀌줌
  • 맨 처음 찾은 값만 변경하고 끝
let str = 'KKAKKA!'
str.replace("K", "G"); //'GKAKKA'

let str = 'KKAKKA!'
str.replaceAll("K", "G"); //'GGAGGA'

*repalceAll 메소드는 최신문법

알고리즘 문제풀이 (convertDoubleSpaceToSingle)

function convertDoubleSpaceToSingle(str) {
  for (let i = 0; i < str.length; i++){
    if(str.includes("  ")) {
      str = str.replace("  ", " ")
    }
  }
  return str
}

References

1. substring()
2. substring()과 slice()의 차이
3. join()

profile
✏️

0개의 댓글