Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

Andrer757

caracteres especiais

Mensagens Recomendadas

Andrer757    0
Andrer757

boas,

alguém me podia explicar como eliminar caracteres especiais como virgulas, pontos e acentos de um vector de strings, é que eu comecei agora a trabalhar com java na universidade e ainda não percebo muito disto.

Obrigado.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Andrer757    0
Andrer757

a class text recebe um vector de Strings em que cada índice do vector corresponde a uma linha de um texto e tenho que correr todo esse texto e eliminar os caracteres especiais como virgulas, pontos finais, etc.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Knitter    101
Knitter

O código certamente precisará de alguns ajustes mas será algo no seguimento de:

public static void main(String[] args) {
        String[] exemplo = {"oaoslal!!!", "sda#aasd", "$lkflsf", "tes34t", "asdafga", "ola", "adeus", "acima", "334gas", "adas%6fda"};
        Vector<String> resultados = new Vector<String>();
        
        for(String s : exemplo) {
            resultados.add(s.replaceAll("[^\\w]", ""));
        }
        
        for(String a : resultados) {
            System.out.println(a);
        }
    }

Estou a usar um método para substituir todos os caracteres que não façam parte de palavras, tudo excepto de a-z, A-Z, _ e 0-9, através da expressão regular "[^\\w]", basicamente significa, "tudo excepto caracteres que façam parte de palavras".

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Andrer757    0
Andrer757

Eu tava a pensar em algo assim:

private String especial = ",.;:<>|!@#£$§%&/{([)]=}'?)_-";
for (int i = 0;i < texto.length;i++) {
for (int j = 0; j < 27;j++) {
	Character esp;
	esp = especial.charAt(j);
	texto[i].replaceAll(esp.toString(), "");
}
}

mas ainda não testei.

O código certamente precisará de alguns ajustes mas será algo no seguimento de:

public static void main(String[] args) {
        String[] exemplo = {"oaoslal!!!", "sda#aasd", "$lkflsf", "tes34t", "asdafga", "ola", "adeus", "acima", "334gas", "adas%6fda"};
        Vector<String> resultados = new Vector<String>();
        
        for(String s : exemplo) {
            resultados.add(s.replaceAll("[^\\w]", ""));
        }
        
        for(String a : resultados) {
            System.out.println(a);
        }
    }

Estou a usar um método para substituir todos os caracteres que não façam parte de palavras, tudo excepto de a-z, A-Z, _ e 0-9, através da expressão regular "[^\\w]", basicamente significa, "tudo excepto caracteres que façam parte de palavras".

Vou ver se o que estou a pensar dá se não tento com esse.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Knitter    101
Knitter

Dessa forma penso que funcionará bem na mesma.

Só tens de te lembrar de uma coisa, as strings em Java são imutáveis, o que significa que como não estás a guardar o resultado do método replaceAll não vais notar alterações.

Se quiseres remover variáveis, não precisas da variável "esp".

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade