본문 바로가기

메봇 강좌

4.4.문자열 객체의 사용법

모두 안녕하십니까. 오랜만에 쓰는 강좌군요.

 

이번 강좌에서는 문자열 객체를 사용하는 방법에 대해 알아보겠습니다.

 

우선 문자열 객체는 '문자열을 다루는 도구들의 모음' 정도로 이해하시면 되겠습니다.

 

문자열 객체를 선언하는 기본형은 아래와 같습니다.

 

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