English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste artigo, você aprenderá sobre strings Kotlin, modelos de string e algumas propriedades e funções de string comuns por meio de exemplos.
Strings são sequências de caracteres. Por exemplo, "Hello there!" é uma literal de string.
No Kotlin, todas as strings são objetos da classe String. Isso significa que strings literais como "Hello here!" são implementadas como instâncias dessa classe.
Este é o método de definição de variáveis String no Kotlin. Por exemplo,
val myString = "Hey there!"
Aqui, myString é uma variável do tipo String.
Você pode declarar uma variável do tipo String e especificar seu tipo em uma única sentença, inicializando-a em outra sentença do programa.
val myString: String ... .. ... myString = "Howdy"
Para acessar elementos de uma string (caracteres), use o operador de acesso de índice. Por exemplo,
val myString = "Hey there!" val item = myString[2]
Aqui, a variável item contém o terceiro caractere 'y' da string myString. Isso porque os índices no Kotlin começam em 0, não como 1.
val myString = "Hey there!" var item: Char item = myString[0] // item = 'H' item = myString[9] // item = '!' item = myString[10] // Erro! Índice da string fora do escopo item = myString[-1] // Erro! Índice da string fora do escopo
Se precisar percorrer os elementos de uma string, você pode usar循环 forFácilImplementação.
fun main(args: Array<String>) { val myString = "Hey!" for (item in myString) { println(item) } }
A saída ao executar o programa é:
H e y !
Como em Java, as strings no Kotlin são imutáveis. Isso significa que você não pode alterar um único caractere da string. Por exemplo,
var myString = "Hey!" myString[0] = 'h' // Erro! Strings
Mas, se declarar uma variável de string usando a palavra-chave var, pode reatribuir essa variável. (Leia mais recomendado:Kotlin var vs val)
fun main(args: Array<String>) { var myString = "Hey!" println("myString = $myString") myString = "Hello!" println("myString = $myString") }
A saída ao executar o programa é:
myString = Hey! myString = Hello!
Os literais são a representação em código de valores fixos. Por exemplo, "Hey there!" é uma string literal que aparece diretamente no programa sem necessidade de cálculo (comoVariável)
No Kotlin há dois tipos de literais de strings:
Os caracteres podem estar previamente escapados na string escapada. Por exemplo
val myString = "Hey there!\n"
Aqui, \n é o caractere de escape, usado para inserir uma quebra de linha no local desejado do texto.
A seguir está a lista de caracteres de escape suportados pelo Kotlin:
\t - Inserir caractere tab
\b - Inserir caractere backspace
\n - Inserir caractere newline
\r - Inserir caractere newline
\' - Inserir caractere aspas simples
\" - Inserir caractere aspas duplas
\\ - Inserir caractere backslash
\$ - Inserir caractere dollar
A string original pode conter quebras de linha (não quebras de linha) e qualquer texto. A string original é delimitada por três aspas """. Por exemplo:
fun main(args: Array<String>) { val myString = """ for (character in "Hey!") println(character) """ print(myString) }
A saída ao executar o programa é:
for (character in "Hey!") println(character)
Você pode usar a função trimMargin() para remover os espaços em branco iniciais da string original. Por exemplo:
fun main(args: Array<String>) { println("Saída sem a função trimMargin():") val myString = """ |Kotlin é interessante. |Kotlin é patrocinado e desenvolvido pela JetBrains. """ println(myString) println("Saída com a função trimMargin():\n") println(myString.trimMargin()) }
A saída ao executar o programa é:
Saída sem a função trimMargin(): |Kotlin é interessante. |Kotlin é patrocinado e desenvolvido pela JetBrains. Saída com a função trimMargin(): Kotlin é interessante. Kotlin é patrocinado e desenvolvido pela JetBrains.
Pelo padrão, a função trimMargin() usa | como prefixo de margem. Mas, você pode alterá-lo passando uma nova string para a função.
fun main(args: Array<String>) { val myString = """ !!! Kotlin é interessante. !!! Kotlin é patrocinado e desenvolvido pela JetBrains. """ println(myString.trimMargin("!!! ")) }
A saída ao executar o programa é:
Kotlin é interessante. Kotlin é patrocinado e desenvolvido pela JetBrains.
O Kotlin tem uma funcionalidade excelente chamada template de string, que permite que a string contenha expressões de template.
As expressões de template de string começam com o símbolo $. Aqui estão alguns exemplos:
fun main(args: Array<String>) { val myInt = 5; val myString = "myInt = $myInt" println(myString) }
A saída ao executar o programa é:
myInt = 5
Isso é porque a expressão ${myInt} (expressão iniciada com o símbolo $) é avaliada e concatenada à string.
fun main(args: Array<String>) { val a = 5 val b = 6 val myString = """ |${if (a > b) a else b} """ println("O número maior é: ${myString.trimMargin()}") }
A saída ao executar o programa é:
O número maior é: 6
Como os literais no Kotlin são implementados como instâncias da classe String, você pode usar vários métodos e propriedades dessa classe.
Propriedade length - Retorna o comprimento da sequência de caracteres da string.
Função compareTo -Compara este string (objeto) com o objeto especificado. Se o objeto for igual ao especificado, retorna 0.
Função get - Retorna o caractere no índice especificado. Você pode usar o operador de acesso de índice em vez da função get, porque o operador de acesso de índice chama internamente a função get.
função plus - Retorna uma nova string, obtida concatenando a string com a string passada para essa função. Você pode usar + O operador substitui a função plus, porque+O operador chama a função plus em segundo plano.
Função subSequence - Retorna uma nova sequência de caracteres a partir dos índices de início e fim especificados.
fun main(args: Array<String>) { val s1 = "Hey there!" val s2 = "Hey there!" var result: String println("s1O comprimento da string é ${s1.length}) result = if (${s}1.compareTo(${s}2) == 0) "igual" else "diferente" println("A string s1e s2é ${result.}) // s1.get(2) é equivalente a ${s1[2] println("O terceiro caractere é ${s1.get(2).") result = s1.plus(" How are you?") // result = s1 + " How are you?" println("result = " + result) println("A substring é " + s1.subSequence(4, 7}) }
Quando o programa é executado, a saída é:
s1O comprimento da string é 10. A string s1e s2É igual. O terceiro caractere é y. result = Hey there! How are you? A substring é "the"