Eu tenho tentado me livrar dos espaços em branco em um NSString
, mas nenhum dos métodos que tentei funcionou.
Eu tenho "this is a test"
e quero receber "thisisatest"
.
Eu usei whitespaceCharacterSet
, o que deveria eliminar os espaços em branco.
NSString *search = [searchbar.text stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
mas eu continuava recebendo a mesma string com espaços. Alguma ideia?
objective-c
string
cocoa
nsstring
marsalal1014
fonte
fonte
Respostas:
stringByTrimmingCharactersInSet
remove apenas caracteres do começo e do fim da sequência, não os do meio.1) Se você precisar remover apenas um determinado caractere (digamos o caractere de espaço) da sua string, use:
2) Se você realmente precisar remover um conjunto de caracteres (ou seja, não apenas o caractere de espaço, mas qualquer caractere de espaço em branco como espaço, tabulação, espaço inquebrável, etc.), poderá dividir sua string usando a
whitespaceCharacterSet
junção das palavras novamente em uma string :Observe que esta última solução tem a vantagem de manipular todos os caracteres de espaço em branco e não apenas os espaços, mas é um pouco menos eficiente que o
stringByReplacingOccurrencesOfString:withString:
. Portanto, se você realmente precisar remover apenas o caractere de espaço e tiver certeza de que não terá nenhum outro caractere de espaço em branco além do caractere de espaço simples, use o primeiro método.fonte
Eu prefiro usar regex como este:
Você pode se tornar uma categoria no NSString para tornar a vida ainda mais fácil:
}
Aqui também está um método de teste de unidade:
fonte
Tarefa fácil usando
stringByReplacingOccurrencesOfString
fonte
Isso pode ajudá-lo se você estiver enfrentando
\u00a0
no lugar de(espaço em branco). Eu tive esse problema ao tentar extrair números de telefone de contato do dispositivo. Eu precisava modificar a string phoneNumber para que ela não tivesse espaços em branco.
Quando
yourString
era o número de telefone atual.fonte
yourString.replacingOccurrences(of: "\u{00a0}", with: "")
stringByReplacingOccurrencesOfString substituirá todo o espaço em branco na string, não apenas no início e no final
Usar
fonte
stringByReplacingOccurrencesOfString
mas dá um exemplo destringByTrimmingCharactersInSet
?fonte
Esta é para mim a melhor maneira de SWIFT
e o resultado é: ciaociao
Mas o truque é esse!
fonte
Use o marco abaixo e remova o espaço.
em outro arquivo, chame TRIM:
Pode ajudá-lo ...
fonte
Isso é para remover qualquer espaço que seja quando você obtém texto de qualquer campo de texto, mas se você deseja remover espaço entre as strings, pode usar
Ele substituirá o espaço vazio por nenhum espaço e o campo vazio será tratado pelo método abaixo:
fonte
fonte
Eu sugiro colocar isso em algum lugar do seu projeto:
fonte