Contagem e Índices
Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 1 de 56.
Você usou str.count nos fundamentos para obter o número de caracteres. Ir além significa entender que uma String Swift é uma sequência de Caracteres, não um array plano de bytes.
let greeting = "Hello"
print(greeting.count) // 5
print(greeting.first!) // "H"
print(greeting.last!) // "o"
print(greeting.isEmpty) // falseVocê não pode indexar uma string com um número inteiro. Para obter um caractere em uma posição específica, solicite à string um index deslocado do seu início:
let i = greeting.index(greeting.startIndex, offsetBy: 1)
print(greeting[i]) // "e"As propriedades first, last e isEmpty são as ferramentas do dia a dia. Recorra a índices apenas quando você realmente precisar de uma posição específica.
Desafio
InicianteLeia uma única linha de entrada. Imprima três linhas:
- O número de caracteres na entrada
- O primeiro e o último caractere separados por um espaço, por exemplo,
H oparaHello truequando o primeiro e o último caracteres forem a mesma letra ignorando a capitalização, caso contráriofalse(ex:Anna,RadaR)
Assuma que a entrada tem pelo menos um caractere.
Para a entrada RadaR, a saída é:
5
R R
trueFolha de consulta
Uma String Swift é uma sequência de Caracteres. Principais propriedades:
let s = "Hello"
s.count // 5
s.first! // "H"
s.last! // "o"
s.isEmpty // falsePara acessar um caractere em uma posição específica, use um deslocamento de índice:
let i = s.index(s.startIndex, offsetBy: 1)
print(s[i]) // "e"Comparação de caracteres insensível a maiúsculas e minúsculas:
s.first!.lowercased() == s.last!.lowercased()Experimente você mesmo
let line = readLine()!
// TODO: imprimir a contagem, o primeiro/último caractere, e a verificação de mesma letra ignorando maiúsculas/minúsculas
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Contagem e ÍndicesCase e TrimBusca em StringsDivisão e JunçãoSubstituindo SubstringsRecapitulação - Verificação de Nome de Usuário4Conjuntos
Criando ConjuntosUnião e InterseçãoSubtração e Diferença SimétricaSubconjunto e SuperconjuntoRecapitulação - Filtro de Tags7Projeto - Monitor de Hábitos
Visão Geral do ProjetoMarcar como Concluído10Projeto - Mecanismo de Quiz
Visão Geral do ProjetoFazer Perguntas2Intervalos e Strides
Fechado vs Meio-AbertoStrideMétodos de IntervaloIntervalos no SwitchRecapitulação - Grade de Calendário5Funções de Ordem Superior Parte 1
MapFilterReduceEncadeando map, filter, reduceRecapitulação - Estatísticas de Palavras