comparação de caracteres

8 respostas
hcbelias

Eu preciso comparar caracteres, por exemplo, tenho a String =" ||| abc|def| |"
e o retorno deve ser String="|abc|def|"
ou seja a cada barra reta, eu verifico o proximo caracter, se o proximo caracter for outra barra reta eu devo excluir alguma das barras.
Eu to na duvida se uso objetos Character ou StringTokenizer, alguma sugestão?

8 Respostas

Lucas_Cavalcanti
string.replaceAll("\|+", "|");

ou seja, substituir uma ou mais barras (pipes) por 1 único pipe…

LPJava

vc pode usar token para isso ou usar o metodo chatAt() que ti retorna um char e vc pode comparar.

String s ="camilo";
System.out.println(s.charAt(2)); // imprime m

flw!!

hcbelias

mas neste caso, ele so faz a modificacao qnd tem 2 ou mais barras, sem houver espaco entre elas, pq se houver espaco ele nao faz a modificacao,
como eu conserto isso?

hcbelias

mas este charAt, ele distingue espaco em branco?
por exemplo
String=“Isto e um teste”
charAt(4), me retorna um espaco em branco, ou “e”??

Lucas_Cavalcanti
string.replaceAll("\|(\s*\|)*", "|");

ou seja: um pipe seguido de grupos de espaços (opcional) e pipe

viva as expressões regulares =)

hcbelias

eu copiei esta construcao ai de cima , mas ta danu um pau, da uma verificada p mim por favor

Lucas_Cavalcanti

aqui funcionou

System.out.println("|  | | ||asdf ||".replaceAll("\|(\s*\|)*", "|"));

retornou

|asdf |

Richeli

http://www.guj.com.br/posts/list/42967.java#227913

neste tópico trata sobre o charAt e mostra também como tratar espaços

Criado 24 de julho de 2007
Ultima resposta 25 de jul. de 2007
Respostas 8
Participantes 4