XScript 매뉴얼 · Chapter 30
title: "STR — 문자열 유틸리티" chapter: 30
STR — 문자열 함수
STR 은 문자열 파싱·변환·검색 유틸리티를 모아둔 글로벌 객체입니다. 프로토콜
프레임 파싱, 주문 번호 분리, 레시피 문자열 처리에서 가장 자주 호출됩니다.
기본 예제
string data = " abc d ";
Log("[{0}] => Trim = [{1}]", data, STR.Trim(data));
data = "12";
int dataToInt = STR.ParseToInt(data);
Log("[{0}] => ParseToInt = [{1}]", data, dataToInt);
data = "12.3";
dataToInt = STR.ParseToInt(data, 0);
Log("[{0}] => ParseToInt = [{1}]", data, dataToInt);
data = "abc:123";
string name;
string value;
STR.ParseNameValue(data, name, value, ":");
Log("[{0}] => ParseNameValue = [{1},{2}]", data, name, value);
int pos = STR.IndexOf(data, ":");
string tail = STR.Substring(data, pos + 1);실전 예제 — 레시피 파싱
// recipe = "1:50,3:20.3,7:60.1"
array items = STR.ParseCommaString(recipe);
if (items.Count == 0)
{
return -1;
}
int unitNo;
double target;
for (i, 0, items.Count - 1)
{
if (STR.ParsePairIntDouble(items[i], unitNo, target, ":") == false)
{
return -1;
}
if (unitNo == targetUnit)
{
return target;
}
}주요 메서드
기본
| 시그니처 | 설명 |
|---|---|
int Length(string text) | 길이 |
string Trim(string text) | 양끝 공백 제거 |
string ToUpper(string text) / string ToLower(string text) | 대·소문자 |
string Replace(string text, string oldValue, string newValue) | 치환 |
bool IsNullOrWhiteSpace(string text) | 빈/공백 여부 |
bool Contains(string text, string value) | 포함 |
bool StartsWith(string text, string value) / EndsWith | 접두/접미 |
검색 · 추출
| 시그니처 | 설명 |
|---|---|
int IndexOf(string text, string value) | 첫 위치 |
int IndexOf(string text, string value, int startIndex) | 시작 위치 지정 |
int NthIndexOf(string text, string value, int n) | N번째 위치 |
string Substring(string text, int startIndex) | 끝까지 자르기 |
string Substring(string text, int startIndex, int length) | 길이 지정 |
파싱
| 시그니처 | 설명 |
|---|---|
array ParseCommaString(string commaString) | CSV 분리 |
array ParseSplitString(string text, string splitString) | 임의 구분자 분리 |
bool ParseNameValue(string text, ref string name, ref string value, string delim) | name/value 쌍 분리 |
bool ParsePairIntDouble(string text, ref int first, ref double second, string delim) | key:value 정수·실수 |
bool ParsePairStrings(string text, ref string first, ref string second) | 문자열 쌍 |
int ParseToInt(string text) / ParseToInt(string text, int defaultValue) | 정수 변환 |
double ParseToDouble(string text) / ParseToDouble(string text, double defaultValue) | 실수 변환 |
파일
| 시그니처 | 설명 |
|---|---|
array ReadAllLines(string path, bool addLog = true) | 파일 → 줄 배열 |
팁
- 외부 프로토콜 파싱은
ParseCommaString후ParsePairIntDouble/ParsePairStrings로 세분화하는 2단 분리 패턴이 안정적. ParseToInt두번째 인자로 기본값을 주면 예외 없이 안전하게 변환.$"..."보간 문자열이 있어FormatString보다 가독성이 좋지만, 복잡한 로케일·포맷은SYS.GetDateTimeStringFormat같은 헬퍼 사용.