주어진 문자열 일부, 문자열 크기 비교

oYJo·2025년 3월 21일

JavaScript

목록 보기
25/52

문자열

1️⃣ 주어진 문자열의 일부만 가져오기 (인덱스)

인덱스 : 배열 안에 담긴 데이터 위치를 가리키는 값
문자열 인덱싱 : 문자열의 각 문자는 인덱스 번호로 시작한다
유사배열 객체 : 배열이 아닌데, 배열과 유사한 객체

  • 문자열도 마치 배열처럼 접근할 수 있기에 유사배열 객체이다
  • length 프로퍼티(속성)이 필요하다
const name = '   ';
name[0];

charAt()

  • 주어진 문자열의 index 위치의 문자를 읽어서 리턴한다.
  • 문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환하는 메소드이다
  • index는 0부터 시작한다
  • index 값이 입력되지 않으면, index 값은 자동으로 0으로 지정된다
const str = "abcd";

console.log(str.charAt()); // "a"
console.log(str.charAt(0)); // "a"
console.log(str.chartAt(str.length-1)); 
// "d"
// 문자열 마지막 글자 리턴
console.log(str.charAt(9999)); 
// 범위 밖이라 빈 문자열 리턴 
// ""

대괄호 인덱스 활용하기(문자열[index])

const str = "abcd";

console.log(str[0]); // "a"
console.log(str[str.length-1]); // "b"
console.log(str[9999]); // 범위 밖이라 undefined

문자열 index vs charAt()

범위에서 벗어날 때 차이점이 있다

const str = "abcd";

console.log(str.charAt(9999); // 빈문자열 리턴
console.log(str[9999]); // undefined

substring()

인덱스 기준 문자열 나누어주는 메서드

const str = "abcd";

console.log(str.substring(0,1)); // "a"
console.log(str.substring(2,3)); // "c"

console.log(str.substring(5,7)); // ""
console.log(str.substring(-1,-2)); // ""

console.log(str.substring(0,0)); // ""

substr()

시작에서 글자 반환
substring과 차이가 있다

indexOf()

문자열에서 특정 문자 인덱스 찾기(몇 번 인지)

  • 없는 값은 -1로 리턴
  • 대소문자 구분한다
const str = "abcd";

console.log(str.indexOf('ab')) // "0"
console.log(str.indexOf('ba')); // "1"
console.log(str.indexOf('abc')); // -1
console.log(str.indexOf('AB')); // -1

split()

문자열을 특정 문자 기준으로 나누어주는 메서드

퀴즈

let vaco = "홍길동";
let baco = `옹길동 ${vaco}`;

console.log(vaco[1]); // 길
console.log(baco[4]); // 홍

2️⃣ 문자열끼리 크기 비교하기 (><)

아스키코드
비교 연산자(<, >, <=, >=)를 통해 비교할 수 있다.

1. 기본적인 문자열 비교

console.log("apple" > "banana");  
// false ('a'가 'b'보다 앞에 있음)

console.log("hello" < "world");   
// true ('h'가 'w'보다 앞에 있음)

console.log("Zoo" > "apple");     
// false ('Z'의 ASCII 값이 'a'보다 작음)

JavaScript는 문자열을 UTF-16 코드 포인트 기준으로 비교한다.
즉, 알파벳 순서뿐만 아니라 대문자가 소문자보다 먼저 정렬된다.

2. 대소문자 구분 없이 비교

대소문자를 구분하지 않고 비교하려면 .toLowerCase() 또는 .toUpperCase()를 사용해서 비교할 수 있다.

console.log("Apple".toLowerCase() > "apple".toLowerCase());  // false

console.log("Zoo".toLowerCase() > "apple".toLowerCase());    // true

3. 언어 설정에 따른 비교

영어뿐만 아니라 다른 언어에서도 정확한 문자열 비교가 필요할 경우, localeCompare()를 사용할 수 있다

console.log("apple".localeCompare("banana"));  // -1 (앞에 위치)

console.log("banana".localeCompare("apple"));  // 1  (뒤에 위치)

console.log("apple".localeCompare("apple"));   // 0  (같음)

localeCompare()는 세 가지 값을 반환한다

  • 1: 첫 번째 문자열이 두 번째보다 앞에 있음
  • 0: 두 문자열이 같음
  • 1: 첫 번째 문자열이 두 번째보다 뒤에 있음

4. 정렬할 때 문자열 비교 활용

배열을 정렬할 때도 문자열 비교가 필요할 수 있다.

let fruits = ["banana", "Apple", "cherry"];
console.log(fruits.sort());  
// 기본 정렬 (대문자가 소문자보다 앞에 옴)

console.log(fruits.sort((a, b) => a.localeCompare(b)));  
// 올바른 사전순 정렬

정렬할 때 localeCompare()를 사용하면 대소문자 상관없이 정확한 정렬이 가능하다


⭐️에어비앤비 스타일 가이드

https://github.com/tipjs/javascript-style-guide

profile
Hello! My Name is oYJo

0개의 댓글