Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

A manipulação de strings é fundamental no desenvolvimento de software; afinal, a maioria das linguagens de programação fornece um tipo de string. Uma string é uma sequência de caracteres: letras, números e símbolos.

A manipulação de strings é útil para vários aplicativos, desde processamento de texto e análise de dados até desenvolvimento web. Operações populares de manipulação de strings são concatenação, validação de dados, extração e formatação. Go fornece um pacote de manipulação de string chamado “strings” na biblioteca padrão.

O pacote de cordas

O cordas O pacote fornece várias funções úteis para manipulação de strings e outras operações. O pacote inclui funcionalidade para operações de substring, corte, comparação de strings, conversão de string, construção de string, divisão e muito mais.

Você pode importar o pacote de strings especificando o nome do pacote em sua lista de importações.

instagram viewer
importar"cordas"

Procurando Substrings

O cordas O pacote fornece três funções para pesquisar substrings: o contém função, o Contém Qualquer função, e o ContémRuna função.

O contém A função verifica se a string especificada contém a substring. O Contém Qualquer A função verifica se a string contém algum caractere na substring e o ContémRuna A função verifica se a string contém uma runa (um caractere Unicode).

importar (
"fmt"
"cordas"
)

funçãoprincipal() {
aString := "Olá Mundo!"
substring := "Mundo"
personagens := "aeiou"
aRuna := 'o'

fmt. Println (strings. Contém (aString, substring)) // Saída: verdadeiro
fmt. Println (strings. ContémAny (aString, caracteres)) // Saída: verdadeiro
fmt. Println (strings. ContémRuna (aString, aRuna)) // Saída: verdadeiro
}

Você pode recuperar o índice de uma substring com o Índice, ÍndiceQualquer, IndexByte, e IndexFunc funções. O Índice A função retorna o índice de uma substring, se ocorrer em outra determinada string. O ÍndiceQualquer função retorna o índice da primeira instância de um ponto de código Unicode ou -1 se nenhum dos caracteres estiver presente.

importar (
"fmt"
"cordas"
)

funçãoprincipal() {
aString := "Olá Mundo!"
substring := "mundo"
caracteres := "mundo"
byteCaractere := byte('o')
aRuna := runa('o')

fmt. Println (strings. Índice (aString, substring)) // Saída: 7
fmt. Println (strings. IndexAny (aString, caracteres)) // Saída: 7
fmt. Println (strings. IndexByte (aString, byteCharacter)) // Saída: 4

f := função(r runa)bool {
retornar r == 'o'
}

fmt. Println (strings. IndexFunc (aString, f)) // Saída: 4
fmt. Println (strings. IndexRune (aString, aRune)) // Saída: 4
}

IndexByte retorna o índice da primeira instância do caractere de byte na string ou -1. O IndexFunc A função retorna o índice na string do primeiro ponto Unicode que satisfaz uma determinada função. finalmente, o Índice Runa A função retorna o índice da primeira instância do ponto de código Unicode da runa.

Substituindo Substrings em Go

O Substituir e Substitua tudo função ajuda com a substituição de substrings. O Substituir A função aceita a string, a substring original e a substituição e várias substituições. O Substitua tudo A função aceita apenas a string, a substring inicial e a substituição.

importar (
"fmt"
"cordas"
)

funçãoprincipal() {
theString := "Esta é uma string de teste a ser modificada."
fmt. Println (strings. Substituir (theString, "é", "era", 1))
fmt. Println (strings. Substituir (theString, "é", "era", -1))
fmt. Println (strings. SubstituirTodos (a String, "é", "era"))
}

Observe que você pode usar tanto Replace como ReplaceAll para substituir todas as ocorrências dentro da string.

Separando e juntando strings

O cordas pacote contém o Dividir, Dividir Depois, SplitAfterN, e DivisãoN funções para dividir strings que retornam uma fatia das strings.

O Dividir método divide por um delimitador especificado. Semelhante ao Dividir método, o Dividir Depois O método divide a string, mas inclui o separador em seus resultados.

importar (
"fmt"
"cordas"
)

funçãoprincipal() {
s := "Esta é uma string de teste a ser dividida."

fmt. Println (strings. Divisão (s, " "))
fmt. Println (strings. SplitAfter (s, " "))
fmt. Println (strings. SplitAfterN(s, " ", 3))
fmt. Println (strings. DivisãoN(s, " ", 3))
}

O SplitAfterN método é semelhante ao Dividir Depois função exceto que a função divide a string em um máximo especificado de substrings. O DivisãoN O método divide a string em um número máximo especificado sem incluir o separador nas substrings.

Você pode juntar strings com o Juntar função do cordas pacote. O Juntar função recebe uma fatia e um delimitador.

importar (
"fmt"
"cordas"
)

funçãoprincipal() {
fmt. Println (strings. Juntar([]corda{"Olá", "Mundo"}, ":"))
// Saída: "Olá: Mundo"
}

Manipulando String Case

A manipulação de maiúsculas e minúsculas é útil para muitas tarefas, incluindo trabalhando com documentação. Você pode usar o Abaixar função para letras minúsculas, o ToUpper função para letras maiúsculas, e o ToTitle função para capitalização do título.

importar (
"fmt"
"cordas"
)

funçãoprincipal() {
s := "Esta é uma string de teste."

fmt. Println (strings. ToLower (s)) // esta é uma string de teste.
fmt. Println (strings. Superior (s)) // ESTA É UMA STRING DE TESTE.
fmt. Println (strings. Para Título(s)) // ESTA É UMA STRING DE TESTE.
}

Construção de strings em Go

Os construtores de string são um tipo que permite uma concatenação eficiente em Go. O bytes. Amortecedor type é um dos construtores de strings comumente usados. O bytes. Amortecedor O método implementa um buffer crescente de bytes com métodos de leitura e gravação para operações, permitindo acréscimos de string eficientes sem a necessidade de fazer novas cópias, ao contrário do método + operação e o Juntar função.

importar (
"fmt"
"cordas"
)

funçãoprincipal() {
var cordas b. Construtor

// Escreve algumas strings para o construtor
b. WriteString("Esse ")
b. WriteString("é ")
b. WriteString("a ")
b. WriteString("teste ")
b. WriteString("corda.")

// Obtém o comprimento do construtor
fmt. Imprimir (b. Len())

// Converte o construtor em uma string
str := b. Corda()
fmt. Println (str)

// Reinicializa o construtor
b. Reiniciar()

// Escreva mais algumas strings para o construtor
b. WriteString("Esse ")
b. WriteString("é ")
b. WriteString("outro ")
b. WriteString("teste ")
b. WriteString("corda.")

// Obtém a capacidade do construtor
fmt. Imprimir (b. Boné())

// Converte o construtor em uma string novamente
Str = b. Corda()
fmt. Println (str)
}

O principal função demonstra como você pode usar o cordas. Construtor tipo para construção de string eficiente. O WriteString método do Cordas. Construtor O tipo estende a sequência de strings entre si, e o Len O método retorna o comprimento da string construída.

O Corda O método converte o conteúdo do construtor em uma string e o Reiniciar O método redefine o construtor para construção de string adicional.

O Boné O método retorna a capacidade do construtor. Este é o espaço atual que Go alocou para a string.

Corte de strings em Go

O cordas pacote também fornece funcionalidade para aparar strings no Aparar, Aparar Esquerda, TrimPrefix, ApararDireita, TrimSpace, e TrimSuffix funções.

importar (
"cordas"
"fmt"
)

funçãoprincipal() {
// a string completa
s := "Olá Mundo!"

// o elemento para o trim
prefixo := "Olá"
sufixo := "Mundo!"

// apara uma string pelo conjunto de aparas especificado
fmt. Println (strings. Corte (s, "!"))

// corta por espaços no início e no final da string
fmt. Println (strings. TrimSpace(s))

// apara da string esquerda pelo conjunto de aparas especificado
fmt. Println (strings. Aparar Esquerda (s, "Olá"))

// apara da string direita pelo conjunto de aparas especificado
fmt. Println (strings. TrimRight (s, "Mundo!"))

// corta um prefixo
fmt. Println (strings. TrimPrefix (s, prefixo))

// elimina um sufixo específico
fmt. Println (strings. TrimSuffix (s, sufixo))
}

O principal A função demonstra como você pode usar as funções para aparar. As diferentes funções aparam o s cadeia de várias maneiras:

Você pode formatar strings em Go

A biblioteca padrão Go também fornece o pacote fmt para formatação de strings. O pacote fmt usa verbos de formatação no estilo C para formatação eficiente de strings em Go.