개념
- 평소에 책 등에서 보는 글자
- ' 또는 "을 사용하여 문자열을 구분
📍 Basic usage
str[index]
- 문자열의 글자 하나하나에 접근할 수 있다 (accessing a character)
- index로 접근은 가능하지만 그 값을 바꿀 수는 없음 (read-only)
ex) str[0] = 'G';
console.log(str); // 'CodeStates' not 'GodeStates', 에러가 나지는 않음
- 문자열은 새로 할당하지 않는 한 항상 read-only!
Concatenating strings
- + 연산자를 쓸 수 있음 (-는 안됨)
- string 타입과 다른 타입 사이에 + 연산자를 쓰면, string 형식으로 변환 (toString)
ex) var str3 = '1';
console.log(str3 + 7); //17
- strl.concat(str2, str3 ...); 의 형태로도 사용해서 문자열을 더하는 방법도 있다
Properties
- length
문자열의 전체 길이를 반환
ex) console.log(str.length); //10
Methods
1) str.indexOf(searchValue)
- 메소드 이름
ex) indexOf
- argument: 찾고자하는 문자열
ex) searchValue(넣어야 할 argument)
- return value: 처음으로 일치하는 index. 찾고자 하는 문자열이 없으면 -1
- str.lastIndexOf : 문자열 뒤에서부터 찾음
ex) 'canal.lastIndexOf('a'); //3
- str.includes(searchValue)
:true 또는 false를 리턴
ex)'blue whale'.includes('Blue') //false
indexOf에 includes의 기능이 포함
2) str.split(seperator)
- argument: 분리 기준이 될 문자열
- return value: 분리된 문자열이 포함된 배열
ex) var str = 'Hello from the other side';
console.log(str.split(' ')); //['Hello', 'from', 'the', 'other', 'side']
- csv(comma-seperated values) 형식을 처리할 때 유용
ex) csv.split('\n') -줄바꿈으로 나눔
[공백 문자: 탭 문자(\t), Carrige return(\r\n) 및 return 문자(\n)]
lines[0].split(',') -쉼표로 나눔
3) str.substring(start, end)
- argument: 시작 index, 끝 index
- return value: 시작과 끝 index 사이의 문자열
- start와 end가 바뀌어도 상관 없음
- end는 optional, 포함하지 않음
ex) var str = 'abcdef';
console.log(str.substring(0, 3)); //'abc'
4) str.toLowerCase() / str.toUpperCase()
- arguments: 없음
- return value: 소, 대문자로 변환된 문자열
ex) console.log('ALPHABET'.toLowerCase()); //'alphabet'
- 문자열 비교할 때 주로 사용
5) Etc
- trim
- match
- replace
- 정규 표현식
Immutable
- 원본이 변하지 않는다
- 모든 string method는 immutable
- 항상 변하지 않는 값을 리턴
- 바뀐 값을 대입하고 싶으면 새로 대입하는 방법밖에 없음
ex) str = str.substring(0,4)
- array method는 immutable 및 mutable 여부를 잘 기억해야 한다
Self-check
- 문자열의 속성과 메소드를 이용해 원하는 형태로 만들 수 있나요?
- 문자열의 length라는 속성을 활용해 길이를 확인할 수 있나요? str.length
- 문자열의 글자 하나하나에 접근하는 방법은? str[1]
- 문자열을 합치려면? word1 + " " + word2
- 문자열을 원하는 만큼 잡으려면? str.slice(0, 3) str.substring(0, 3)
- 영문을 모두 대문자로 바꾸려면? str.toUpperCase
- 영문을 모두 소문자로 바꾸려면? str.toLowerCase
- 문자열 중 원하는 글자의 index를 찾으려면? str.indexOf('a')
- 문자열 중 원하는 글자가 포함되어 있는지 알려면? str.includes('a')
Advanced challenges
- 띄어쓰기 (" ") 로 문자열을 구분하여, 배열로 바꿀 수 있다. str.split(" ").join(" ")
- 위의 배열을 다시 문자열로 바꿀 수 있다.