• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Andrer757

caracteres especiais

7 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podias explicar melhor o que queres?? É um Vector ou um array ?? Tens apenas uma letra por posição ou uma palavra ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basta para isso ir a cada posição de do vector re fazer um replace dos caracteres que queres por um "".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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".

0

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