Isso depende do que você quer dizer. Se você apenas deseja se livrar deles, faça o seguinte: (Atualização: aparentemente, você também deseja manter os dígitos, use as segundas linhas nesse caso)
quando estou usando esta função, ela está removendo todos os números também. mas eu não quero que os números sejam removidos. apenas quero remover caracteres especiais. Sugira algo ...
Tanu
bem, você disse que só queria o alfabeto. Mas atualizarei minha resposta em um minuto
Sean Patrick Floyd
Eu quero concat string, mas com alguma condição como 1.Se houver apenas um resultado, nenhuma concat é necessária 2.Se o resultado for mais do que 1 do que concat string no seguinte exemplo de formato: pilha + sobre + fluxo
Tanu
2
@Tanu, essa é uma questão diferente. Faça um novo
Pekka
E se eu não quiser que os espaços sejam removidos? ou digamos que todos os espaços são tabulações, novas linhas recolhidas como apenas um espaço?
maldito
74
Eu estou usando isso
s = s.replaceAll("\\W","");
Ele substitui todos os caracteres especiais da string.
Aqui
\ w: um caractere de palavra, abreviação de [a-zA-Z_0-9]
Aqui, todos os caracteres especiais, exceto espaço, vírgula e E comercial, são substituídos. Você também pode omitir espaço, vírgula e "e" comercial pela seguinte expressão regular.
Seguindo o exemplo da resposta de Andrzej Doyle , acho que a melhor solução é usar org.apache.commons.lang3.StringUtils.stripAccents():
package bla.bla.utility;import org.apache.commons.lang3.StringUtils;publicclassUriUtility{publicstaticString normalizeUri(String s){String r =StringUtils.stripAccents(s);
r = r.replace(" ","_");
r = r.replaceAll("[^\\.A-Za-z0-9_]","");return r;}}
Você pode usar expressões regulares básicas em strings para localizar todos os caracteres especiais ou usar classes padrão e correspondentes para pesquisar / modificar / excluir strings definidas pelo usuário. Este link contém alguns exemplos simples e fáceis de entender para expressões regulares: http://www.vogella.de/articles/JavaRegularExpressions/article.html
Você pode obter o Unicode para esse caractere lixo na ferramenta de mapa de caracteres no pc da janela e adicionar \ u eg \ u00a9 para o símbolo de copyright. Agora você pode usar essa string com aquele caractere de lixo em particular, não remova nenhum caractere de lixo, mas substitua pelo Unicode adequado.
Respostas:
Isso depende do que você quer dizer. Se você apenas deseja se livrar deles, faça o seguinte:
(Atualização: aparentemente, você também deseja manter os dígitos, use as segundas linhas nesse caso)
ou o equivalente:
(Tudo isso pode ser significativamente melhorado ao pré-compilar o padrão regex e armazená-lo em uma constante)
Ou, com Goiaba :
Mas se você quiser transformar caracteres acentuados em algo sensível que ainda é ascii, olhe para estas questões:
fonte
Eu estou usando isso
Ele substitui todos os caracteres especiais da string.
Aqui
\ w: um caractere de palavra, abreviação de [a-zA-Z_0-9]
\ W: um caractere não verbal
fonte
Você pode usar o método a seguir para manter os caracteres alfanuméricos.
E se você quiser manter apenas caracteres alfabéticos, use este
fonte
replaceAll("[^a-zA-Z0-9 ]", "");
Substitua quaisquer caracteres especiais por
ex: substituir todas as ocorrências de * por espaço em branco
* esta declaração só pode substituir um tipo de caractere especial por vez
fonte
Aqui, todos os caracteres especiais, exceto espaço, vírgula e E comercial, são substituídos. Você também pode omitir espaço, vírgula e "e" comercial pela seguinte expressão regular.
Onde Input é a string que precisamos para substituir os caracteres.
fonte
Seguindo o exemplo da resposta de Andrzej Doyle , acho que a melhor solução é usar
org.apache.commons.lang3.StringUtils.stripAccents()
:fonte
Você pode usar expressões regulares básicas em strings para localizar todos os caracteres especiais ou usar classes padrão e correspondentes para pesquisar / modificar / excluir strings definidas pelo usuário. Este link contém alguns exemplos simples e fáceis de entender para expressões regulares: http://www.vogella.de/articles/JavaRegularExpressions/article.html
fonte
Você pode obter o Unicode para esse caractere lixo na ferramenta de mapa de caracteres no pc da janela e adicionar \ u eg \ u00a9 para o símbolo de copyright. Agora você pode usar essa string com aquele caractere de lixo em particular, não remova nenhum caractere de lixo, mas substitua pelo Unicode adequado.
fonte
Para espaços, use "[^ az AZ 0-9]" este padrão
fonte