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”…
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
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
icharus
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
eclipso
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
thingol
classTesteReplaceAll{publicstaticvoidmain(String[]args){Strings="\\t\\e\\s\\t\\e \\\\";// a string, impressa, fica como "\t\e\s\t\e \"System.out.println(s.replaceAll("\\\\(.)","$1"));// Imprime "teste \" }}
I
icharus
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
thingol
( e ) servem para criar um grupo, que será referenciado depois na parte da substituição como $1.