텍스트
연결하려면 양쪽 모두 Text여야 합니다
+는 두 Text를 연결합니다. "Count: " + 5는 "Count: 5"가 아닙니다. 혼합 형식의 대체 결과인
Integer 0입니다. 숫자, Bool, 핸들은 먼저 StringFormat으로 Text로 바꾸십시오.
StringFormat(format, value0, value1)
- 모든
{0}을value0으로, 모든{1}을value1로 바꿉니다. 두 값 모두 어떤 형식이든 될 수 있습니다.{2}나{0:N2}같은 서식 지정자는 없습니다. - 항상 인수 세 개를 받습니다. 사용하지 않는 값에는
""를 전달하십시오:StringFormat("{0} items", n, ""). - 값이 둘보다 많으면 호출을 중첩하거나 결과를 연결하십시오(아래 예제 참조).
- Real은 항상 소수 여섯 자리로 표시됩니다(
0.500000). 정수로 표시하려면 먼저 Integer로 반올림하고, 고정 소수점으로 출력하려면 배율을 적용하십시오(MathRound(r * 100)). {0}이{1}보다 먼저 바뀌므로,value0의 텍스트에{1}이 들어 있으면 그것도 바뀝니다.
w = WindowGetActive();
s = StringFormat(StringFormat("{0} x {1} at ", WindowGetWidth(w), WindowGetHeight(w)) + "({0}, {1})",
WindowGetX(w), WindowGetY(w));
UtilityPrint(s); // 예: 1280 x 720 at (100, 80)
길이 측정, 검색, 자르기
StringGetLength는 문자가 아니라 UTF-16 코드 단위를 셉니다. 기본 다국어 평면(BMP) 밖의 이모지는 2로 셉니다.StringGetIndexOf(text, search)는 0부터 시작하는 인덱스를 반환하며,search를 찾지 못하면-1을 반환합니다. 대/소문자를 구분하며, "마지막 인덱스" 함수는 없습니다 (루프로 검색).StringGetSubstring(text, start, length):start는 0부터 시작합니다. 끝을 넘어가는length는 잘리고, 끝 이상인start는""를 반환합니다. 음수인start나length는 오류이며 작업을 중지합니다.- 인덱싱 구문(
s[0])은 없습니다. 문자 하나는StringGetSubstring(s, i, 1)을 사용하십시오. StringContains,StringStartsWith,StringEndsWith,StringReplace는 정확히 일치해야 하며 대/소문자를 구분합니다. 대/소문자를 구분하지 않고 검사하려면 먼저 양쪽을 소문자로 바꾸십시오.StringToUpper/StringToLower는 사용자 로캘의 대/소문자 규칙을 따르므로 터키어의 점 있는 i와 점 없는 ı도 올바르게 처리됩니다.StringTrim은 양쪽 끝의 공백을 제거하며, Windows\r\n줄 끝에서 남은\r도 제거합니다.StringReplace와StringSplit은 검색 텍스트나 구분 기호가 비어 있으면 작업을 중지합니다.
분할 결과는 인덱스로 읽는 캐시입니다
값 하나에 목록을 담을 수 없으므로, StringSplit(text, delimiter)는 부분들을 실행 중인 스크립트의
컨텍스트에 저장하고 그 개수를 반환합니다. 각 부분은 StringGetSplitPartAt(i)로 읽으며, 범위를
벗어난 인덱스는 ""를 반환합니다. 같은 스크립트에서 다음 StringSplit을 호출하면 이 캐시가
대체되므로, 다른 것을 분할하기 전에 필요한 부분을 변수에 복사하십시오. 모든 …EnumerateAll,
…FindAll…, …GetAll… 기본 제공 함수도 짝을 이루는 …EnumeratedAt 판독 함수와 함께 같은
방식으로 동작합니다.
텍스트 비교
==는 정확히 일치해야 하며 대/소문자를 구분합니다. </>는 UTF-16 코드 단위로 서수 비교하며,
이는 사전 순서가 아닙니다. 모든 ASCII 대문자가 모든 소문자보다 앞에 오고, 악센트가 있는 문자는 z
뒤에 옵니다. 이 순서를 사용자에게 사전순인 것처럼 보여 주지 마십시오.