GameMaker강좌[GMS2]/GMS2기초강좌

[게임메이커 강좌-기초][GMS2] 문자열 분할하기

타락카얀 2023. 12. 30. 10:28
728x90

 

 

GAME MAKER 강좌

 

KAYAN

 

 

 

 

 

 

◈ 문자열 분할하기

 

 

문자열을 분할할 수 있는 함수에 대해 알아봅시다.

 


   string_split(string, delimiter, [remove_empty], [max_splits])

   - string : 주어진 구분 기호를 사용하여 분할할 문자열
   - delimiter(구분자) : 분할을 구분할 문자열 구분자

   - remove_empty : [선택사항] 이 매개변수는 빈 배열 요소를 배열에서 제거해야 하는지를
                         결정합니다(기본값은 false).

                         배열에서 빈 문자열을 원하지 않으면 이 매개변수를 true로 설정해야 합니다.

   - max_splits : [선택사항] 최대 분할 수를 결정합니다.
                       max_splits 뒤에 오는 모든 구분 기호는 마지막 문자열의 일부가 됩니다.
                       예를들어, "1|2|3|4|5" 를 구분 기호 "|" 로 분할한다고 했을 때,
                       max_splits를 3으로 설정하면 ["1", "2", "3", "4|5"]를 반환합니다.




 

이 함수는 주어진 구분 기호를 사용하여 문자열을 별도의 문자열로 분할합니다.

분리된 문자열은 새 배열로 반환됩니다.

 

구분 기호 문자열은 문자열을 분할하는 경계(단일 문자 또는 문자열)입니다.

 

예를 들어, 문자열이 아래와 같이 있을 때,

 


   str="This is the string";

 

단일 공백 문자 " "를 구분 기호로 사용하여 분할한다면,

 


    split_array=string_split(str, " ");




   //결과
   split_array=["This", "is", "the", "string"]


 

결과 배열은 ["This", "is", "the", "string"]으로 분할 됩니다.

구분 기호 자체는 결과 문자열에 포함되지 않습니다.

 

   - 반환값 : Array

 

예제 1)


   file_path = "C:/Users/someone/Documents/data.json";
   
   var _path_parts = string_split(file_path, "/");
   
   show_debug_message(_path_parts);
   
   drive_name = _path_parts[0];
   file_name = array_last(_path_parts);


 

위의 코드는 먼저 file_path 변수에 파일 경로를 저장합니다.

그런 다음 슬래시 '/'를 구분 기호로 사용하여 경로에서 string_split을 호출하여 분할한 문자열을

임시 변수 _path_parts에 저장합니다.

 

그런 다음 _path_parts 배열의 내용을 보여주는 디버그 메시지를 표시합니다.

마지막으로 첫 번째 배열 항목(드라이브 문자)을 변수 drive_name에 저장하고, 마지막 배열 항목(파일 이름)

file_name 변수에 저장합니다.

 

예제 2)


   the_string = "abc/def//ghi/jkl/mno/pqrs/tuv/wxyz";;
   string_parts = string_split(the_string, "/", true, 5);
   
   show_debug_message_ext("{0}, {1}, {2}, {3}, {4}", string_parts);


 

위의 코드는 the_string의 문자열을 string_split을 사용하여 총 5개(max_splits 값)의 개별 문자열로 분할합니다.

string_split 함수의 remove_empty 인수를 true로 설정함으로써, "def" 다음 구분 기호 "/" 와 "ghi" 앞 구분 기호 "/" 사이의

공백과 같은 빈 배열 요소는 제거합니다.

마지막으로 show_debug_message_ext를 사용하여 배열의 처음 5개 슬롯을 디버그 메시지로 표시합니다.

 

 

 

 


   string_split_ext(string, delimiter_array, [remove_empty], [max_splits])

   - string : 주어진 구분 기호를 사용하여 분할할 문자열
   - delimiter_array : 문자열을 분할할 구분 기호가 있는 배열

   - remove_empty : [선택사항] 이 매개변수는 빈 배열 요소를 배열에서 제거해야 하는지를
                         결정합니다(기본값은 false).

                         배열에서 빈 문자열을 원하지 않으면 이 매개변수를 true로 설정해야 합니다.

   - max_splits : [선택사항] 최대 분할 수를 결정합니다.
                       max_splits 뒤에 오는 모든 구분 기호는 마지막 문자열의 일부가 됩니다.
                       예를들어, "1|2|3|4|5" 를 구분 기호 "|" 로 분할한다고 했을 때,
                       max_splits를 3으로 설정하면 ["1", "2", "3", "4|5"]를 반환합니다.



 

이 함수는 배열의 구분 기호를 사용하여 문자열을 별도의 문자열로 분할합니다.

결과 문자열은 새 배열로 반환됩니다.

 

구분 기호 배열에는 문자열이 분할되는 모든 가능한 값을 포함할 수 있습니다.

 

예를 들어, "이름,나이;신장|설명"을 분할하려는 문자열이 있을 수 있습니다.

개별 단어를 원하는데, 단어 사이에 여러 구분 문자가 있습니다.

이럴 때, 구분자를 배열로 [",", ";", "|"]와 같이 지정할 수 있습니다.

이 배열을 사용하여 주어진 문자열에 대한 string_split_ext의 결과는 ["이름", "나이", "신장", "설명"]이 되는 거죠.

 

 

   - 반환값 : Array

 

예)


   words = string_split_ext("here,there;everywhere,and beyond", [",", ";"]);

 

위의 코드는 두 개의 다른 구분 기호 "," 및 ";"를 사용하여 문자열을 분할하고, 결과를 변수 words에 배열로 저장합니다.

 

 

 

 

 

 

 

 

 

300x250