JavaScript 문자열을 배열로 변환하기: split() 메서드 완벽 가이드

JavaScript 문자열을 배열로 변환하기: split() 메서드 완벽 가이드 (JavaScript String to Array: Mastering the split() Method)

JavaScript 문자열을 배열로 변환하기: `split()` 메서드 완벽 가이드

JavaScript에서 문자열 데이터를 다루다 보면, 특정 기준에 따라 문자열을 여러 조각으로 나누어 배열 형태로 다룰 필요가 생길 때가 많습니다. 이때 가장 유용하게 사용되는 메서드가 바로 `String.prototype.split()`입니다. 이 가이드에서는 `split()` 메서드의 기본적인 사용법부터 복잡한 시나리오까지, 다양한 예제와 함께 자세히 알아보겠습니다.

`String.prototype.split()` 메서드란?

`split()` 메서드는 특정 **구분자(separator)**를 기준으로 문자열을 여러 부분으로 나눈 후, 나눠진 부분들을 **배열**에 담아 반환하는 강력한 도구입니다.

문법:


str.split(separator, limit)
    
  • `separator` (선택 사항): 문자열을 나눌 기준이 되는 문자열 또는 정규 표현식(Regular Expression)입니다.
    • 만약 `separator`를 생략하거나 `undefined`로 전달하면, 전체 문자열이 배열의 단일 요소로 들어갑니다.
    • `separator`가 빈 문자열(`""`)이면, 문자열의 각 문자가 개별 요소로 배열에 들어갑니다.
  • `limit` (선택 사항): 배열에 포함될 최대 요소 수를 지정합니다. 이 수를 초과하는 부분은 버려집니다.

`split()` 메서드 활용 예제

1. 공백을 기준으로 문자열을 단어 배열로 분리

가장 흔한 사용 사례로, 문장을 단어 단위로 분리할 때 공백을 `separator`로 사용합니다.


const sentence = "Hello world! This is a JavaScript example.";

// 공백(' ')을 기준으로 문자열을 나눕니다.
// split() 메서드는 원본 문자열에서 모든 공백을 찾아 그 부분을 기준으로 문자열을 자르고,
// 잘려진 각 조각을 새로운 배열의 요소로 반환합니다.
const words = sentence.split(' ');

console.log("공백 기준 분리:", words);
// 출력: ["Hello", "world!", "This", "is", "a", "JavaScript", "example."]
    

2. 쉼표(`,`)를 기준으로 문자열 분리

CSV(Comma Separated Values)와 같이 쉼표로 구분된 데이터를 처리할 때 유용합니다.


const csvData = "apple,banana,orange,grape";

// 쉼표(,)를 기준으로 문자열을 나눕니다.
const fruitsArray = csvData.split(',');

console.log("쉼표 기준 분리:", fruitsArray);
// 출력: ["apple", "banana", "orange", "grape"]
    

3. 여러 글자의 특정 단어를 기준으로 분리

구분자가 한 글자가 아닌 여러 글자로 이루어진 단어나 문장일 수도 있습니다.


const textWithSeparator = "안녕하세요.---반갑습니다.---또 만나요.";
const separatorWord = "---";

// '---' 라는 특정 단어를 기준으로 문자열을 나눕니다.
const parts = textWithSeparator.split(separatorWord);

console.log("특정 단어 기준 분리:", parts);
// 출력: ["안녕하세요.", "반갑습니다.", "또 만나요."]
    

4. `limit` 인자 사용하기

결과 배열의 길이를 제한하고 싶을 때 `limit` 인자를 사용합니다. 이는 특히 큰 문자열을 다룰 때 메모리나 성능 최적화에 도움이 될 수 있습니다.


const longSentence = "The quick brown fox jumps over the lazy dog.";

// 공백을 기준으로 나누되, 최대 3개의 요소만 배열에 포함합니다.
// limit 인자(여기서는 3)는 split()이 반환할 배열의 최대 길이를 제한합니다.
// 초과하는 나머지 부분은 버려집니다.
const limitedWords = longSentence.split(' ', 3);

console.log("limit 인자 사용:", limitedWords);
// 출력: ["The", "quick", "brown"]
    

5. 정규 표현식(`RegExp`)을 구분자로 사용하기

더 복잡한 분리 기준이 필요할 때는 정규 표현식을 사용할 수 있습니다. 예를 들어, 공백이나 쉼표, 마침표 등 여러 구분자를 한꺼번에 처리하고 싶을 때 유용합니다.


const mixedSeparators = "Apple, Banana; Orange. Grape!";

// 공백, 쉼표, 세미콜론, 마침표, 느낌표 중 하나 이상을 기준으로 나눕니다.
// /[\s,;.!]+/:
//   - []: 문자 클래스, 괄호 안의 문자들 중 하나와 일치합니다.
//   - \s: 모든 공백 문자(스페이스, 탭, 줄바꿈 등)를 의미합니다.
//   - ,;.!: 리터럴 쉼표, 세미콜론, 마침표, 느낌표입니다.
//   - +: 앞의 패턴(여기서는 문자 클래스)이 한 번 이상 반복됨을 의미합니다.
const wordsWithRegex = mixedSeparators.split(/[\s,;.!]+/);

// 정규 표현식을 사용하면 구분자 위치에 따라 빈 문자열이 포함될 수 있습니다.
// .filter(Boolean)을 추가하여 배열에서 빈 문자열('')과 같은 falsy 값을 제거하여 깔끔한 결과를 얻습니다.
const cleanedWords = wordsWithRegex.filter(Boolean);

console.log("정규 표현식 분리 (원래 결과):", wordsWithRegex);
// 출력: ["Apple", "", "Banana", "Orange", "Grape", ""] (정규식 패턴에 따라 빈 문자열이 포함될 수 있음)
console.log("정규 표현식 분리 (정돈된 결과):", cleanedWords);
// 출력: ["Apple", "Banana", "Orange", "Grape"]
    

6. 빈 문자열을 기준으로 분리 (각 문자 분리)

문자열을 한 글자씩 나누어 배열로 만들려면 빈 문자열 `""`을 구분자로 사용합니다.


const greeting = "Hello";

// 빈 문자열('')을 기준으로 나누어 각 문자를 배열에 담습니다.
const characters = greeting.split('');

console.log("각 문자 분리:", characters);
// 출력: ["H", "e", "l", "l", "o"]
    

`split()` 메서드 사용 시 주의사항

  • `split()` 메서드는 **원본 문자열을 변경하지 않고**, 항상 새로운 배열을 반환합니다.
  • `separator`가 문자열에 존재하지 않으면, `split()`은 원본 문자열을 유일한 요소로 갖는 배열을 반환합니다.
    
    const str = "apple";
    const result = str.split("banana");
    console.log(result); // 출력: ["apple"]
                

`split()` 메서드를 잘 이해하고 활용하면 문자열 데이터를 효율적으로 파싱하고 원하는 형태로 조작하는 데 큰 도움이 될 것입니다. 다양한 상황에서 이 메서드를 사용해보면서 숙달해 보세요!

댓글 없음:

댓글 쓰기

댓글 폭탄 해결! 자바스크립트 댓글 접기/펼치기로 가독성 200% 높이는 법(Solve Comment Chaos: Elevate Readability 200% with JS Comment Folding/Unfolding)

내 웹사이트에 적용! 초간단 자바스크립트 댓글 펼치기/숨기기 튜토리얼 내 웹사이트에 적용! 초간단 자바스크립트 댓글 펼치기/숨기기 튜토...