Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O string tipo representa o texto imutável como uma sequência de caracteres Unicode.
string é um alias de System.String no .NET.
Observações
Literais de cadeia de caracteres são delimitados pelo caractere de aspas ("). O caractere de barra invertida ( \ ) é usado para codificar determinados caracteres especiais. A barra invertida e o próximo caractere juntos são conhecidos como uma sequência de escape. Sequências de escape com suporte em literais de cadeia de caracteres F# são mostradas na tabela a seguir.
| Personagem | Sequência de escape |
|---|---|
| Alerta | \a |
| Tecla Backspace | \b |
| Avanço de página | \f |
| Newline | \n |
| Retorno de carro | \r |
| Tab | \t |
| Guia vertical | \v |
| Barra invertida | \\ |
| Aspa | \" |
| Apóstrofo | \' |
| Caractere Unicode |
\DDD (em que D indica um dígito decimal; intervalo de 000 a 255; por exemplo, \231 = "ç") |
| Caractere Unicode |
\xHH (em que H indica um dígito hexadecimal; intervalo de 00 – FF; por exemplo, \xE7 = "ç") |
| Caractere Unicode |
\uHHHH (UTF-16) (em que H indica um dígito hexadecimal; intervalo de 0000 – FFFF; por exemplo, \u00E7 = "ç") |
| Caractere Unicode |
\U00HHHHHH (UTF-32) (em H que indica um dígito hexadecimal; intervalo de 000000 a 10FFFF; por exemplo, \U0001F47D = "👽") |
Importante
A \DDD sequência de escape é notação decimal, não notação octal como na maioria dos outros idiomas. Portanto, dígitos e são válidos 8 e uma sequência de \032 representa um espaço (U+0020), enquanto esse mesmo ponto de código na notação octal seria \040.9
Observação
Sendo restringidos a um intervalo de 0 a 255 (0xFF), as sequências e de \DDD escape são efetivamente o conjunto de caracteres ISO-8859-1, uma vez que corresponde aos primeiros 256 pontos de código Unicode\x.
Cadeias de caracteres verbatim
Se precedido pelo símbolo @, o literal é uma cadeia de caracteres verbatim. Declarar uma cadeia de caracteres verbatim significa que todas as sequências de escape são ignoradas, exceto que dois caracteres de aspas são interpretados como um caractere de aspas.
Cadeias de caracteres com aspas triplas
Além disso, uma cadeia de caracteres pode ser colocada entre aspas triplas. Nesse caso, todas as sequências de escape são ignoradas, incluindo caracteres de aspas duplas. Para especificar uma cadeia de caracteres que contém uma cadeia de caracteres entre aspas inserida, você pode usar uma cadeia de caracteres verbatim ou uma cadeia de caracteres com aspas triplas. Se você usar uma cadeia de caracteres verbatim, deverá especificar dois caracteres de aspas para indicar um único caractere de aspas. Se você usar uma cadeia de caracteres com aspas triplas, poderá usar os caracteres de aspas simples sem que eles sejam analisados como o final da cadeia de caracteres. Essa técnica pode ser útil quando você trabalha com XML ou outras estruturas que incluem aspas inseridas.
// Using a verbatim string
let xmlFragment1 = @"<book author=""Milton, John"" title=""Paradise Lost"">"
// Using a triple-quoted string
let xmlFragment2 = """<book author="Milton, John" title="Paradise Lost">"""
No código, cadeias de caracteres que têm quebras de linha são aceitas e as quebras de linha são interpretadas como a codificação de nova linha usada na origem, a menos que um caractere de barra invertida seja o último caractere antes da quebra de linha. O espaço em branco à esquerda na próxima linha é ignorado quando o caractere de barra invertida é usado. O código a seguir produz uma cadeia de str1 caracteres que tem valor "abc\ndef" e uma cadeia de caracteres str2 que tem valor "abcdef".
let str1 =
"abc
def"
let str2 =
"abc\
def"
Indexação e fatiamento de cadeia de caracteres
Você pode acessar caracteres individuais em uma cadeia de caracteres usando a sintaxe de matriz. Os exemplos a seguir usam [] para indexar cadeias de caracteres. Essa sintaxe foi introduzida no F# 6.0. Você também pode usar .[] para indexar cadeias de caracteres em todas as versões. A nova sintaxe é preferencial.
printfn "%c" str1[1]
A saída é b.
Ou você pode extrair subcadeias de caracteres usando a sintaxe de fatia de matriz, conforme mostrado no código a seguir.
printfn "%s" str1[0..2]
printfn "%s" str2[3..5]
A saída é a seguinte.
abc
def
Você pode representar cadeias de caracteres ASCII por matrizes de bytes não assinados, digite byte[]. Adicione o sufixo B a um literal de cadeia de caracteres para indicar que é uma cadeia de caracteres ASCII. Literais de cadeia de caracteres ASCII usados com matrizes de bytes dão suporte às mesmas sequências de escape que cadeias de caracteres Unicode, exceto para as sequências de escape Unicode.
// "abc" interpreted as a Unicode string.
let str1: string = "abc"
// "abc" interpreted as an ASCII byte array.
let bytearray: byte[] = "abc"B
Operadores de cadeia de caracteres
O + operador pode ser usado para concatenar cadeias de caracteres, mantendo a compatibilidade com os recursos de tratamento de cadeia de caracteres do .NET Framework. O exemplo a seguir ilustra a concatenação de cadeia de caracteres.
let string1 = "Hello, " + "world"
Classe String
Como o tipo de cadeia de caracteres em F# é, na verdade, um tipo do .NET Framework System.String , todos os System.String membros estão disponíveis.
System.String inclui o + operador, que é usado para concatenar cadeias de caracteres, a Length propriedade e a Chars propriedade, que retorna a cadeia de caracteres como uma matriz de caracteres Unicode. Para obter mais informações sobre cadeias de caracteres, consulte System.String.
Usando a Chars propriedade de System.String, você pode acessar os caracteres individuais em uma cadeia de caracteres especificando um índice, conforme mostrado no código a seguir.
let printChar (str: string) (index: int) =
printfn "First character: %c" (str.Chars(index))
Módulo de cadeia de caracteres
A funcionalidade adicional para tratamento de cadeia de caracteres está incluída no String módulo no FSharp.Core namespace. Para obter mais informações, consulte o Módulo de Cadeia de Caracteres.