

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 수식 표현식에서 문자열 함수 사용
<a name="expression-string-functions"></a>

[변환](transforms.md) 및 [지표](metrics.md)에서는 다음 함수를 사용하여 문자열에 대한 작업을 할 수 있습니다. 자세한 내용은 [수식에서 문자열 사용](expression-tutorials.md#use-strings-in-formulas) 단원을 참조하십시오.

**중요**  
<a name="formula-output-rules"></a>공식 표현식은 실수 또는 문자열 값만 출력할 수 있습니다. 중첩 표현식은 문자열과 같은 다른 데이터 유형을 출력할 수 있지만 공식 전체는 숫자나 문자열로 평가되어야 합니다. [jp 함수](#jp-definition)를 사용하여 문자열을 숫자로 변환할 수 있습니다. 부울 값은 1(참) 또는 0(거짓)이어야 합니다. 자세한 내용은 [정의되지 않은 값, 무한 값 및 오버플로우 값](expression-tutorials.md#undefined-values) 단원을 참조하십시오.


| 함수 | 설명 | 
| --- | --- | 
|  `len(s)`  |  문자열 `s`의 길이를 반환합니다.  | 
|  `find(s, substring)`  |  문자열 `s`에 있는 문자열 `substring`의 인덱스를 반환합니다.  | 
|  `contains(s, substring)`  |  문자열 `s`에 문자열 `substring`가 포함되어 있으면 `1`를 반환하고, 그렇지 않으면 `0`를 반환합니다.  | 
|  `upper(s)`  |  문자열 `s`를 대문자 형태로 반환합니다.  | 
|  `lower(s)`  |  문자열 `s`를 소문자 형식으로 반환합니다.  | 
|   `jp(s, json_path)`  |  [JSONPath](https://github.com/json-path/JsonPath) 표현식 `json_path`로 문자열 `s`를 평가하고 결과를 반환합니다. 이 함수를 사용하여 다음을 수행합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/iot-sitewise/latest/userguide/expression-string-functions.html) JSON 구조에서 문자열 값을 추출하여 숫자로 반환하려면 여러 중첩 `jp` 함수를 사용해야 합니다. 외부 `jp` 함수는 JSON 구조에서 문자열을 추출하고, 내부 `jp` 함수는 문자열을 숫자로 변환합니다. 문자열 `json_path`는 문자열 리터럴을 포함해야 합니다. 즉, `json_path`는 문자열로 평가되는 표현식일 수 없습니다. 

**Example 예제**  
+ `jp('{"status":"active","value":15}', '$.value')`에서 `15`를 반환합니다.
+ `jp('{"measurement":{"reading":25,"confidence":0.95}}', '$.measurement.reading')`에서 `25`를 반환합니다.
+ `jp('[2,8,23]', '$[2]')`에서 `23`를 반환합니다.
+ `jp('{"values":[3,6,7]}', '$.values[1]')`에서 `6`를 반환합니다.
+ `jp('111', '$')`에서 `111`를 반환합니다.
+ `jp(jp('{"measurement":{"reading":25,"confidence":"0.95"}}', '$.measurement.confidence'), '$')`에서 `0.95`를 반환합니다.  | 
|  `join(s0, s1, s2, s3, ...)`  |  구분 기호와 함께 연결된 문자열을 반환합니다. 이 함수는 첫 번째 입력 문자열을 구분 기호로 사용하고 나머지 입력 문자열을 결합합니다. 이는 Java의 [조인(CharSequence 구분 기호, CharSequence... 요소](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang.CharSequence...-)) 함수와 비슷하게 동작합니다. 

**Example 예제**  
+ `join("-", "aa", "bb", "cc")`에서 `aa-bb-cc` 반환  | 
|  `format(expression: "format")` 또는 `format("format", expression)`  |  지정된 형식의 문자열을 반환합니다. 이 함수는 `expression` 값으로 평가한 다음 지정된 형식으로 값을 반환합니다. 이 함수는 Java의 [형식(문자열 형식, Object... args)](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-) 함수와 비슷하게 동작합니다. 지원되는 형식에 대한 자세한 내용은 *Java 플랫폼, Standard Edition 7 API 사양*의 [클래스 포맷터](https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html)에서 변환을 참조하세요. 

**Example 예제**  
+ `format(100+1: "d")`에서 문자열 `101`을 반환합니다.
+ `format("The result is %d", 100+1)`에서 문자열 `The result is 101`을 반환합니다.  | 
|  `f'expression'`  |  연결된 문자열을 반환합니다. 이 형식이 지정된 함수를 사용하면 간단한 표현식을 사용하여 문자열을 연결하고 서식을 지정할 수 있습니다. 이러한 함수에는 중첩된 표현식이 포함될 수 있습니다. `{}`(중괄호)를 사용하여 표현식을 보간할 수 있습니다. 이것은 Python의 [형식이 지정된 문자열 리터럴](https://docs.python.org/3/reference/lexical_analysis.html#f-strings)과 유사하게 동작합니다. 

**Example 예제**  
+ `f'abc{1+2: "f"}d'`에서 `abc3.000000d`를 반환합니다. 이 예제 표현식을 평가하려면 다음을 수행하세요.

  1. `format(1+2: "f")`에서 부동 소수점 숫자 `3.000000`를 반환합니다.

  1. `join('', "abc", 1+2, 'd')`에서 문자열 `abc3.000000d`을 반환합니다.

  `join('', "abc", format(1+2: "f"), 'd')`와 같은 방법으로 표현식을 작성할 수도 있습니다.  | 