

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar funções de string em expressões de fórmula
<a name="expression-string-functions"></a>

Em [transformações](transforms.md) e [métricas](metrics.md), você pode usar as seguintes funções para operar em cadeias de caracteres: Para obter mais informações, consulte [Usar strings em fórmulas](expression-tutorials.md#use-strings-in-formulas).

**Importante**  
<a name="formula-output-rules"></a>As expressões de fórmula só podem produzir valores duplos ou de string. Expressões aninhadas podem gerar outros tipos de dados, como strings, mas a fórmula como um todo deve ser avaliada como um número ou string. Você pode usar a [função jp](#jp-definition) para converter uma string em um número. O valor Booleano deve ser 1 (verdadeiro) ou 0 (falso). Para obter mais informações, consulte [Valores indefinidos, infinitos e excedidos](expression-tutorials.md#undefined-values).


| Função | Description | 
| --- | --- | 
|  `len(s)`  |  Retorna o tamanho da string `s`.  | 
|  `find(s, substring)`  |  Retorna o índice da string `substring` na string `s`.  | 
|  `contains(s, substring)`  |  Retorna `1` se a string `s` contiver a string `substring`, caso contrário, `0`.  | 
|  `upper(s)`  |  Retorna a string `s` em maiúsculas.  | 
|  `lower(s)`  |  Retorna a string `s` em minúsculas.  | 
|   `jp(s, json_path)`  |  Avalia a string `s` com a [JsonPath](https://github.com/json-path/JsonPath)expressão `json_path` e retorna o resultado. Use essa função para fazer o seguinte: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/expression-string-functions.html) Para extrair um valor de string de uma estrutura JSON e retorná-lo como um número, você deve usar várias funções aninhadas `jp`. A função externa `jp` extrai a string da estrutura JSON e a função interna`jp` converte a string em um número. A string `json_path` deve conter uma literal de string. Isso significa que `json_path` não pode ser uma expressão avaliada como uma string. 

**Example Exemplos**  
+ `jp('{"status":"active","value":15}', '$.value')` Retorna `15`.
+ `jp('{"measurement":{"reading":25,"confidence":0.95}}', '$.measurement.reading')` Retorna `25`.
+ `jp('[2,8,23]', '$[2]')` Retorna `23`.
+ `jp('{"values":[3,6,7]}', '$.values[1]')` Retorna `6`.
+ `jp('111', '$')` Retorna `111`.
+ `jp(jp('{"measurement":{"reading":25,"confidence":"0.95"}}', '$.measurement.confidence'), '$')` Retorna `0.95`.  | 
|  `join(s0, s1, s2, s3, ...)`  |  Retorna uma string concatenada com um delimitador. Essa função usa a primeira string de entrada como delimitador e une as demais strings de entrada. Isso se comporta de forma semelhante à função [join (CharSequence delimiter, CharSequence... elements](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang.CharSequence...-)) em Java. 

**Example Exemplos:**  
+ `join("-", "aa", "bb", "cc")` retorna `aa-bb-cc`  | 
|  `format(expression: "format")` ou `format("format", expression)`  |  Retorna uma string no formato especificado. Essa função valia `expression` como um valor e, em seguida, retorna o valor no formato especificado. Isso se comporta de forma semelhante a função [format(String format, Object... args)](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-) em Java. Para obter mais informações sobre os formatos suportados, consulte Conversões em [Formatador de Classe](https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html) na *Plataforma Java, Especificação de API Standard Edition 7*. 

**Example Exemplos**  
+ `format(100+1: "d")` retorna uma string, `101`.
+ `format("The result is %d", 100+1)` retorna uma string, `The result is 101`.  | 
|  `f'expression'`  |  Retorna uma string concatenada. Com essa função formatada, você pode usar uma expressão simples para concatenar e formatar strings. Essas funções podem conter expressões aninhadas. Você pode usar `{}` (chaves) para interpolar expressões. Isso se comporta de forma semelhante aos [literais de string formatados](https://docs.python.org/3/reference/lexical_analysis.html#f-strings) em Python. 

**Example Exemplos**  
+ `f'abc{1+2: "f"}d'` Retorna `abc3.000000d`. Para avaliar esse exemplo de expressão, faça o seguinte:

  1. `format(1+2: "f")` retorna um número de ponto flutuante, `3.000000`.

  1. `join('', "abc", 1+2, 'd')` retorna uma string, `abc3.000000d`.

  Você também pode escrever a expressão da seguinte maneira: `join('', "abc", format(1+2: "f"), 'd')`.  | 