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?
string.replaceAll("\|+", "|");
ou seja, substituir uma ou mais barras (pipes) por 1 único pipe…
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!!
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?
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”??
string.replaceAll("\|(\s*\|)*", "|");
ou seja: um pipe seguido de grupos de espaços (opcional) e pipe
viva as expressões regulares =)
eu copiei esta construcao ai de cima , mas ta danu um pau, da uma verificada p mim por favor
aqui funcionou
System.out.println("| | | ||asdf ||".replaceAll("\|(\s*\|)*", "|"));
retornou
|asdf |
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