English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Strings e modelos de string Kotlin

Neste artigo, você aprenderá sobre strings Kotlin, modelos de string e algumas propriedades e funções de string comuns por meio de exemplos.

String (Cadeia de caracteres) no Kotlin

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.

Como criar uma variável de string?

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"

Como acessar caracteres de uma string?

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

Exemplo: percorrendo uma string

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
!

Strings imutáveis no Kotlin

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)

Exemplo: reatribuição de variável de string.

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!

texto literal

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:

1.string escapada

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

2.string original

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:

Exemplo: impressão da string original

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.

Exemplo: função trimMargin() com parâmetros

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.

Template de string no Kotlin

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:

Exemplo: Template de string no Kotlin

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.

Exemplo: Template de string com string original

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

Várias propriedades e funções de string

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.

Exemplo: Propriedades e funções de string

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"