모두 안녕하십니까. 오랜만에 쓰는 강좌군요.
이번 강좌에서는 문자열 객체를 사용하는 방법에 대해 알아보겠습니다.
우선 문자열 객체는 '문자열을 다루는 도구들의 모음' 정도로 이해하시면 되겠습니다.
문자열 객체를 선언하는 기본형은 아래와 같습니다.
var 변수명 = new String(문자형 데이터);
물론 실제로는 위의 방법보다는 아래의 방법이 더 많이 쓰입니다.
var 변수명 = 문자형 데이터;
예를 들어,
var a = "안녕하세요 반갑습니다.";
이라고 한다면 변수 a에는 "안녕하세요 반갑습니다." 라는 문자열이 할당되며, 객체가 생성됩니다.
그럼 이제 본격적으로 문자열 객체에 대해 알아보도록 하죠.
우선 문자열 객체의 메서드 및 속성들은 아래의 표와 같습니다.
종류 | 설명 |
charAt(인덱스 번호) |
문자열에서 인덱스 번호에 해당하는 문자를 반환합니다. |
indexOf("찾을 문자") |
문자열에서 왼쪽부터 찾을 문자를 찾아 가장 먼저 찾은 문자의 인덱스 번호를 반환합니다. 만약 없을 시 -1을 반환합니다. |
lastIndexOf("찾을 문자") |
문자열에서 오른쪽부터 찾을 문자를 찾아 가장 먼저 찾은 문자의 인덱스 번호를 반환합니다. 만약 없을 시 -1을 반환합니다. |
match("찾을 문자") |
문자열에서 왼쪽부터 찾을 문자를 찾아 가장 먼저 찾은 문자를 반환합니다. 만약 없을 시 null을 반환합니다. |
replace("바꿀 문자","새 문자") |
문자열에서 왼쪽부터 찾을 문자를 찾아 가장 먼저 찾은 문자를 새 문자로 대체합니다. 만약 없을 시 오류가 발생합니다. |
search("찾을 문자") |
문자열에서 왼쪽부터 찾을 문자를 찾아 가장 먼저 찾은 문자의 인덱스 번호를 반환합니다. |
slice(a, b) |
문자열에서 앞에서부터 a개의 문자를 자르고 b인덱스부터의 문자들을 모두 자른 뒤 남은 문자를 반환합니다. |
substring(a, b) |
문자열에서 a부터 b인덱스 사이의 문자들을 반환합니다. |
substr(a, b) |
문자열에서 a인덱스부터 b개만큼 문자열을 반환합니다. |
split("기준 문자") |
문자열에서 기준 문자를 기준으로 문자 데이터를 나누어 배열로 만들어 반환합니다. |
toLowerCase() |
문자열에서 영문 대문자를 모두 소문자로 바꿉니다. |
toUpperCase() |
문자열에서 영문 소문자를 모두 대문자로 바꿉니다. |
length |
문자열에서 문자의 개수를 반환합니다. |
concat("새 문자") |
문자열의 뒤에 새 문자열을 이어붙입니다. |
charCodeAt(인덱스 번호) |
문자열에서 인덱스 번호에 해당하는 문자의 아스키코드값을 반환합니다. |
fromCharCode(아스키 코드값) |
아스키코드값에 해당하는 문자를 반환합니다. |
trim() |
문자의 앞 또는 뒤의 공백 문자를 제거합니다. |
표만 투척하고 도망가면 욕먹을 테니 하나하나 예제와 함께 풀이해 보도록 하죠.
목록이 너무 길어서 모든 예제를 한 번에 올리도록 하겠습니다.
예제는 아래와 같습니다.
var a = "모두 안녕하세요 안녕 저는 1급_청정수입니다.";
var b = "Hello World!";
var c = " 예시 ";
//charAt
var ca = a.charAt(3);
//변수 ca 에 "세"가 할당됩니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//indexOf
var io = a.indexOf("안녕");
//변수 io 에 숫자 3이 할당됩니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//lastIndexOf
var lio = a.lastIndexOf("안녕");
//변수 lio 에 숫자 9가 할당됩니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//match
var mh = a.match("청정수");
//변수 mh 에 문자열 "청정수" 가 할당됩니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//replace
var re = a.replace("청정수", "썩은물");
//변수 re 에 문자열 "모두 안녕하세요 안녕 저는 1급_썩은물입니다." 가 할당됩니다.
//전 청정수가 맞습니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//search
var sh = a.search("안녕");
//변수 sh 에 숫자 3이 할당됩니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//slice
var se = a.slice(3, 5);
//변수 se 에 문자열 "안녕" 이 할당됩니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//substring
var sg = a.substring(3, 5);
//변수 sg 에 문자열 "안녕" 이 할당됩니다.
/*
그럼 slice랑 차이가 뭐냐고요?
substring은 인덱스 a부터 b이전의 문자를 반환합니다.
따라서 b에다가 음수를 집어넣으면 b가 0이 되어 인덱스 번호 0부터 a까지의 문자를 반환하죠.
(전 이렇게 써본 적이 없습니다.)
*/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//substr
var sr = a.substr(3, 5);
//변수 sr 에 문자열 "안녕 저는" 이 할당됩니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//split
var st = a.split(" ");
//변수 st 에 배열 ["모두", "안녕하세요", "안녕", "저는", "1급_청정수입니다."] 가 할당됩니다.
/*
참고로 a.split("") 을 한다면 그 결과는 아래와 같습니다.
["모", "두", " ", "안", "녕", "하", "세", "요", " ", "안", "녕", " ", "저", "는", " ", "1", "급", "_", "청", "정", "수", "입", "니", "다", "."]
네, 그냥 문자열 전체를 문자 하나하나 다 분해합니다.
*/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//toLowerCase
var tlc = b.toLowerCase();
//변수 tlc 에 문자열 "hello world!" 가 할당됩니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//toUpperCase
var tuc = b.toUpperCase();
//변수 tuc 에 문자열 "HELLO WORLD!" 가 할당됩니다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//length
var lh = a.length;
//변수 lh 에 숫자 25가 할당됩니다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//concat
var ct = a.concat(" 만나서 반갑습니다.");
//변수 ct 에 문자열 "모두 안녕하세요 안녕 저는 1급_청정수입니다. 만나서 반갑습니다." 가 할당됩니다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//charCodeAt
var cca = b.charCodeAt(4);
//변수 cca 에 문자열 "o"의 아스키 코드값인 숫자 111이 할당됩니다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//fromCharCode
var fcc = String.fromCharCode(111);
//변수 fcc 에 문자열 "o" 가 할당됩니다.
/*
참고로 앞에 String이 있는 이유는 문자열 객체의 메서드는
문자열 객체가 있어야만 생성되기 때문에 만약에 그냥 fromCharCode(111)을 한다면
'fromCharCode' is not defined 이라는 에러가 뜹니다.
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//trim
var tm = c.trim();
//변수 tm 에 문자열 "예시" 가 할당됩니다.
네 편의성귀찮아서을 위해 설명과 예제를 합쳤습니다.
이상 이 긴 글을 읽어주셔서 감사합니다.
다음 강좌에서는 제가 반복문 뒤에 설명하려 했었던 선택문에 대해 풀이하도록 하겠습니다.
그다음에는 메신저봇 r의 각종 Api들과 Utils에 대해 풀이한 뒤 함수에 대해 풀이할 예정입니다.
(도중에 바뀔 수도 있어요.)
그럼 모두 건강하시고 다음 강좌에서 다시 만나 뵙도록 하겠습니다.
'메봇 강좌' 카테고리의 다른 글
5.메신저봇r이 지원하는 기능들 (0) | 2020.05.03 |
---|---|
3.4.switch문의 사용법 (0) | 2020.05.03 |
4.3.배열 객체의 사용법 (0) | 2020.04.05 |
4.2.날짜 객체 사용법 (3) | 2020.04.05 |
4.1수학객체 사용법 (1) | 2020.03.30 |