Uma string em Go é uma sequência imutável de bytes, que não precisa necessariamente representar caracteres.
Um literal de string é definido entre aspas duplas:
const name = "Jane"
Strings podem ser concatenadas com o operador +:
"Jane" + " " + "Austen"
// => "Jane Austen"
Alguns caracteres especiais precisam ser escapados com uma barra invertida no início, como \t para uma tabulação e \n para uma nova linha em strings.
"How is the weather today?\nIt's sunny"
// =>
// How is the weather today?
// It's sunny
O pacote strings contém muitas funções úteis para trabalhar com strings.
Para mais informações sobre funções de string, confira a documentação do pacote strings.
Aqui estão alguns exemplos:
import "strings"
// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"
// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"
Tem uma loja de eletrodomésticos chamada "Tech Palace" aqui perto. O dono da loja instalou recentemente um grande painel para usar em mensagens de marketing e para mostrar uma saudação especial quando os clientes passam seus cartões de fidelidade na entrada. O painel é formado por muitas luzinhas de LED e consegue mostrar várias linhas de texto.
O dono da loja precisa da sua ajuda com o código usado para gerar o texto do novo painel.
Para a maioria dos clientes que passam seus cartões de fidelidade, o dono da loja quer ver "Welcome to the Tech Palace," seguido do nome do cliente em letras maiúsculas no painel.
Implemente a função WelcomeMessage, que recebe o nome do cliente como um argumento do tipo string e retorna a mensagem desejada como uma string.
WelcomeMessage("Judy")
// => Welcome to the Tech Palace, JUDY
Para os clientes fiéis que compram muito na loja, o dono quer deixar o painel de boas-vindas mais bonito, adicionando uma linha de estrelas antes e depois da mensagem de boas-vindas. Ele ainda não tem certeza de quantas estrelas devem haver nas linhas, então quer que isso seja configurável.
Escreva uma função AddBorder que recebe uma mensagem de boas-vindas (uma string) e o número de estrelas por linha (do tipo int) como argumentos.
Ela deve retornar uma string formada por 3 linhas: uma linha com o número de estrelas desejado, depois a mensagem de boas-vindas exatamente como foi passada e, por fim, outra linha de estrelas.
AddBorder("Welcome!", 10)
Deve retornar o seguinte:
**********
Welcome!
**********
Antes de instalar esse novo painel, a loja tinha um painel parecido que só conseguia mostrar linhas estáticas e não configuráveis. O dono gostaria de reaproveitar algumas das mensagens de marketing antigas no novo painel. Porém, os dados já incluem uma borda de estrelas e alguns espaços em branco indesejados. Sua tarefa é limpar as mensagens para que elas possam ser reaproveitadas.
Implemente uma função CleanUpMessage que recebe a mensagem de marketing antiga como uma string.
A função deve primeiro remover todas as estrelas do texto e depois remover os espaços em branco no início e no fim do texto restante.
Em seguida, a função deve retornar a mensagem limpa.
message := `
**************************
* BUY NOW, SAVE 10% *
**************************
`
CleanUpMessage(message)
// => BUY NOW, SAVE 10%
Crie sua conta no Exercism para aprender e dominar Go com 34 conceitos165 exercícios e mentoria humana de verdade, tudo de graça.