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)파일 → 줄 배열

  • 외부 프로토콜 파싱은 ParseCommaStringParsePairIntDouble / ParsePairStrings 로 세분화하는 2단 분리 패턴이 안정적.
  • ParseToInt 두번째 인자로 기본값을 주면 예외 없이 안전하게 변환.
  • $"..." 보간 문자열이 있어 FormatString 보다 가독성이 좋지만, 복잡한 로케일·포맷은 SYS.GetDateTimeStringFormat 같은 헬퍼 사용.