Swift:
Descobrindo o comprimento de uma string
Como fazer:
let saudacao = "Olá, mundo!"
let comprimento = saudacao.count
print("O comprimento da string é \(comprimento)")
// Saída: O comprimento da string é 12Para strings com caracteres especiais:
let emoji = "🇧🇷"
print("O comprimento do emoji é \(emoji.count)")
// Saída: O comprimento do emoji é 1Lembre-se que Swift trata os Emojis como caracteres únicos, independentemente da sua complexidade.
Mergulho Profundo
Em versões anteriores do Swift, você poderia ter usado saudacao.characters.count, mas isso foi simplificado. Hoje, .count faz o trabalho sem complicações. Há alternativas, como NSString do Objective-C, que contam os caracteres de maneira diferente, considerando detalhes de codificação UTF-16.
let texto = "Café"
let nsStringComprimento = (texto as NSString).length
print("NSString comprimento: \(nsStringComprimento)")
// Saída: NSString comprimento: 4Note que o NSString conta o caractere “é” como dois caracteres (codificação UTF-16), enquanto String no Swift conta corretamente como um.
Importante: .count no Swift executa em tempo linear com o número de caracteres Unicode, porque ele percorre toda a string para fazer a contagem correta, considerando todos os grapheme clusters como um único caractere visível.
Veja Também
- Documentação oficial da Apple para Strings em Swift: Strings and Characters
- Unicode Consortium para entender mais sobre grapheme clusters e Unicode: Unicode Standard