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에 배열로 저장합니다.
'GameMaker강좌[GMS2] > GMS2기초강좌' 카테고리의 다른 글
[게임메이커 강좌-기초][GMS2] 배열 함수-배열 생성 및 배열 추가 (0) | 2023.12.31 |
---|---|
[게임메이커 강좌-기초][GMS2] 배열 (3) | 2023.12.31 |
[게임메이커 강좌-기초][GMS2] 문자열 (1) | 2023.12.30 |
[게임메이커 강좌-기초][GMS2] 삼항연산자(? :) (1) | 2023.12.30 |
[게임메이커 강좌-기초][GMS2]3D에서의 목표물 거리와 방향측정 (3) | 2023.07.12 |
댓글