Criando meu escape caracter

8 respostas
I

Será q dá pra me dar um help?

Eu preciso converter um arquivo TXT em XLS, estou usando o POI…

Só q acontece o seguinte, estou precisando criar uma escape caracter como o próprio java tem… ou seja se a String tiver “\t\e\s\t\e” eu preciso ignorar os “” e retornar “teste” o maior problema é que caso a String contenha “\” eu preciso ignorar só a primeira “”… tipo “\t\e\s\t\e” para “tes\te”…

Alguém tem alguma idéia de como eu faço isso?!

8 Respostas

V

usa um replaceAll()

I

o problema do replaceall() é q qd eu tiver \ ele irá substituir as duas… eu preciso q ele substitua só a primeira, mas se eu usar o replaceFirst() nos casos como \t\e\s\t\e ele vai substituir só a primeira barra…

afdestro

acredito q usando substring vc possa resolver seu problema…
mas um jeito de se fazer é assim

String s = t/e/s//t/e”;

System.out.println(s);

s = s.replace("//", !);

System.out.println(s);

s = s.replace("/", “”);

System.out.println(s);

s = s.replace("!", /);

System.out.println(s);

vc tem a string…
dai tudo q for duas barras ele muda pra !
depois ele substitui todas as / por nada
dai depois ele volta o ! para /
é um POG bem feio… mas se for urgente da pra usa…
AHHAHAHHAHAHAHHAHAHHAHAHAH

sem comentarios ¬¬

I

Hehehehehehe com certeza não é uma forma muito elegante, mas como não vou mandar os fontes pro chefe, não tem problemas… valeu pela força afdestro… e vou dar uma estudada em substring…

abraços…

E

Dpa pra usar lógica de análise léxica e implementar um pequeno autômato finito que detecte esses caracteres e faça as substituições necessárias…

T
class TesteReplaceAll {
    public static void main(String[] args) {
        String s = "\\t\\e\\s\\t\\e \\\\"; // a string, impressa, fica como "\t\e\s\t\e \"
        
        System.out.println (s.replaceAll ("\\\\(.)", "$1")); // Imprime "teste \"   
    }
}
I

Valeu Thingol… essa realmente ficou elegante hehehehehe

Só queria entender o q o “(.)” faz… isso eu não achei na documentação do Pattern…

T

( e ) servem para criar um grupo, que será referenciado depois na parte da substituição como $1.

. é simplesmente qualquer caracter.

Criado 18 de dezembro de 2006
Ultima resposta 18 de dez. de 2006
Respostas 8
Participantes 5