Lua에서 string.sub, :sub 함수 정리와 사용법
개발/lua script1 2025. 12. 17. 08:32Lua에서 string.sub는 문자열에서 원하는 구간을 잘라서 "부분 문자열(substring)"을 만드는 함수입니다.
1) string.sub 기본 형태
string.sub(문자열, 시작인덱스 [, 끝인덱스])
- 시작인덱스부터 끝인덱스까지 잘라냅니다.
- 끝인덱스를 생략하면 "시작인덱스부터 문자열 끝까지"를 반환합니다.
예시:
local s = "Hello Lua"
print(string.sub(s, 1, 5)) -- Hello
print(string.sub(s, 7)) -- Lua
Lua의 문자열 인덱스는 1부터 시작합니다.
- 1: 첫 번째 문자
- 2: 두 번째 문자
- …
- 0: 일반적인 의미의 “첫 글자”가 아닙니다(의도와 다르게 동작할 수 있어서 보통 쓰지 않습니다)
간단 예시로 보면:
local s = "ABC"
print(string.sub(s, 1, 1)) -- A
print(string.sub(s, 2, 2)) -- B
print(string.sub(s, 3, 3)) -- C
2) 음수 인덱스 지원 (뒤에서부터)
string.sub는 음수 인덱스를 지원합니다.
- -1: 마지막 문자
- -2: 뒤에서 두 번째 문자
local s = "ABCDE"
print(string.sub(s, -1)) -- E
print(string.sub(s, -3, -1)) -- CDE
4) str:sub(...) 사용법
Lua에서는 문자열도 "문자열 라이브러리" 함수들을 메서드처럼 호출할 수 있습니다.
아래 두 줄은 완전히 같은 의미입니다.
string.sub(s, 1, 5)
s:sub(1, 5)
예시:
local s = "Hello Lua"
print(s:sub(1, 5)) -- Hello
print(s:sub(7)) -- Lua
참고로 : 문법은 첫 번째 인자(자기 자신)를 자동으로 넘기는 문법이라서,
str:sub(1,5)는 내부적으로 string.sub(str,1,5)처럼 호출됩니다.
반응형




