JAVASCRIPT

효율적으로 문자열과 배열 활용하기

진블로그 2023. 3. 29. 22:48
다른 명언

728x90
반응형

자바스크립트에서 number와 boolean,string 유형은 별도로 프로토타입 객체가 만들어져 있습니다. 즉, 숫자는 Number 객체, 문자열은 String 객체라는 식으로 만들어졌는데, 이런 객체를 '래퍼 객체'라고 부릅니다. 

 

문자열에서 길이를 찾을 때는 배열에서처럼 length 프로퍼티를 사용합니다.

let str = ""Good morning!"
let a = "안녕하세요?"
str.length	// 14
a.length 	// 6

공백도 문자열에 포함 됩니다.

 

chatAt(), indexOf() 메서드를 활용하여 문자열에서 문자의 위치를 찾을 수 있습니다.

문자열에서 특정 위치의 문자를 가져오려면 charAt() 함수를 사용합니다. 위치는 인덱스로 표시되는데, 인덱스는 0부터 시작합니다.

let str = "good morning!";
str.charAt(3)	// "d" 인덱스가 0부터 시작하므로
str[5]		// "m" 	에크마스크립트 2015이후부터 주로 대괄호를 사용한 접근법을 사용합니다.

문자열에서 부분 문자열의 위치를 찾기 위해서는 indexOf() 메서드를 활용합니다. 괄호 안의 문자열이 나타난 위치를 알려주고 위치 값을 생략할 경우에는 문자열이 나타난 첫번째 위치를 알려 줍니다.

let str = "good morning, everyone. beautiful morning."
str.indexOf("morning")		//5
str.indexOf("evening")		//-1

 

startsWith() 메서드를 활용하여 특정 문자나 문자열로 시작하는지 확인할 수 있습니다. 이 때 확인할 문자나 문자열에서 영문자의 대소문자를 구별하므로 주의해야 합니다. 결과값은 true나 false 입니다.

let str ="Good morning!";

console.log(str.startsWith("Good"));		// true
console.log(str.startsWith("good"));		// false
console.log(str.startsWith("mo", 5));		// true

 

endsWith()메서드를 활용하여 문자열이 특정 문자나 문자열로 끝나는지 확인 할 수 있습니다. 영문자의 대소문자를 구별하고 결과값은 true나 false가 나옵니다.

// str2 = "Hello, everyone."
str2.startsWith("el", 1)			//true
str2.startsWith("o", 4)				//true

// str3 = "Hello, everyone."
str3.endsWith("everyone")			//true
str3.endsWith("Everyone")			//false
str3.endsWith("one")				//true
str3.endsWith("lo, everyone")			//false

 

includes()메서드를 활용하여 문자열에 특정 문자나 문자열이 포함되었는지 확인할 수 있습니다. 영문자의 대소문자를 구별합니다.

let str ="Hello, everyone.";
    
console.log(str.includes("one."));		//true
console.log(str.includes("ever"));		//true

 

문자열에서 공백 제거하기 trim(), trimStart(), trimEnd() 메서드

연산에 사용하기 위해 공백을 제거할 경우 string 객체에 있는 메서드를 사용하면 매우 간단하게 삭제할 수 있습니다.

문자열.trim()			//문자열의 앞뒤 공백을 제거합니다.
문자열.trimStart()		//문자열의 앞쪽 공백을 제거합니다.
문자열.trimEnd()		//문자열의 뒤쪽 공백을 제거합니다.
let str3 = "ab cd ef"
str3.trim()			// 'ab cd ef'
str3.trimStart()		// 'ab cd ef	'
str3.trimEnd()			// '	ab cd ef'

 

문자열의 대소문자 바꾸기 toUpperCase(), to LowerCase() 메서드

영문자 문자열의 경우에는 모두 대문자로, 또는 소문자로 바꿀 수 있습니다.

문자열.toUpperCase()	//문자열을 모두 대문자로 변환합니다.
문자열.toLowerCase()	//문자열을 모두 소문자로 변환합니다.

let str4 = "Good morning."
str4.toUpperCase()	// "GOOD MORNING."
str4.toLowerCase()	// "good morning."

 

부분 문자열 추출하기 substring(), slice() 메서드

특정 문자열만 추출할 때 사용합니다. 사용형식이나 동작 방법이 모두 비슷합니다.

 

substring()메서드시작 위치 부터 끝 위치의 직전까지 추출해서 반환합니다.이때 끝위치의 직전까지 추출하고 끝위치는 포함하지않습니다. 끝 위치를 지정하지 않으면 시작부터 문자열 끝까지 추출해서 반환합니다.

문자열.substring(시작 위치)
문자열.substring(시작 위치, 끝 위치)

// str4 = "Good morning."
str4.substring(5)	// "morning."
str4.substring(0, 4)	// "Good"

slice()메서드는 substring과 같지만 slice는 음수를 사용하여 끝부분에서 부터 위치를 찾아 추출합니다. 음수로 지정하면 문자열의 끝에서부터 위치를 찾으르모 문자열을 뒤에서부터 자를 경우에는 slice()메서드가 편리합니다. 

문자열.slice(시작 위치)
문자열.slice(시작 위치, 끝 위치)

// str4 - "Good morning."
str4.slice(0, 4)	// "Good"
str4.slice(-5, 12)	// "ning"

 

구분자에 따라 문자 쪼개기 split() 메서드

문자열의 split()메서드는 문자열에서 구분자를 기준으로 문자열을 쪼개 줍니다. 단어별로 구분하려면 구분자를 공백(" ")으로 지정해서 split()메서드를 실행해야 합니다. 

문자열.split(구분자)

str5 = "Hello everyone"
array1 = str5.split(" ")	// ["Hello", "everyone"]
728x90