replaceAll

8 respostas
R

Boa tarde pessoal,

Estou tentando criar um programa, faça gerar um txt com uns codigos pre-definidos em zpl.

Uma pessoa terá que dar entrada de um codigo de barras, e ao clicar em save, parte do que ele deu entrada precisa ser alterado, como por exemplo:

LIDO --> ABCD
RETORNAR --> 1234

como fazer utilizando o replaceAll?
é possivel fazer com várias palavras usando o rpelaceAll?

Obrigado!

8 Respostas

drsmachado

Deixa eu ver se entendi.
Ao clicar em save, caso o texto contenha “LIDO” este será substituído por “ABCD”?
Bom, você pode usar replaceAll. Os argumentos aceitos são duas Strings, logo, se quer trocar mais de uma palavra, terá que passar palavra a palavra até contemplar todas que precisa alterar.

Rodrigo_Sasaki

Você tentou fazer alguma coisa? É perfeitamente possível (e até intuitivo) fazer com o replaceAll.

Só lembre-se que ele recebe uma expressão regular no primeiro argumento, e não uma String literal.

EDIT: Lembre-se também que Strings são imutáveis.

R

Valeu pessoal, pela rápida resposta.

Vou tentar me explicar direito:

Preciso substituir o 22R1010 por ABCD, se fosse apenas 1 entrada tudo bem, isso abaixo daria certo.

jTextField1.getText().replaceAll(“22R1010”,“ABCD”)

Mas preciso alem do 22R1010, substiruir o 22R1011, 22R1287, por FJHI, JKLM

ValeuuU!!

drsmachado

Veja bem, se eu tiver a palavra “ABCDEDCDWDCCDGGFFGDS” e quiser substituir todas as ocorrências de D por X, faço:

String prim = "ABCDEDCDWDCCDGGFFGDS";
String dois = prim.replaceAll("D", "X");

Certo?
Agora, se eu quiser substituir todas as ocorrências de D por X e as de C por L, eu coloco na sequência:

String prim = "ABCDEDCDWDCCDGGFFGDS";
String dois = prim.replaceAll("D", "X");
dois = dois.replaceall("C", "L");

E assim sucessivamente, saca?

R

Legal, entendi sim!!!

Mas no caso, eu to usando um jTextField como fazer o replace sucessivo assim?

Obrigado.

R

Abaixo mais ou menos oq eu fiz:

setTextoLog("^XA^FWN^LH050,20^PRA^MD25"+"\r\n"
	+ "^FO010,010^A0N,050,030^FD(11S)PN/SN:"+jTextField1.getText().replaceAll("22R1010","ABCD")+"FS" +"\r\n" 
	+ "^FO030,070^BY2,9^B1,N,70,N,N,N^FD"+jTextField1.getText()+"^FS"+"\r\n"
	+ "^FO050,100^A0N,050,070^FD ^FS"+"\r\n"
	+ "^PQ001,0,1,Y^XZ");
Rodrigo_Sasaki

Da mesma maneira, oras. // 1 - Atribua o valor do textfield à uma variável // 2 - Faça todos os replaces // 3 - jogue o texto no textfield novamenteVocê pode fazer diretamente no textfield, mas acho que se dividir assim vai ficar mais fácil de entender.

drsmachado

Você está programando para computadores com quanto de memória mesmo? Sim, pois pela pergunta, a preocupação maior é com relação ao consumo de memória, pois você não quer declarar e instanciar atributos nas classes.
Siga o que o Rodrigo disse, rapaz.

Criado 5 de novembro de 2012
Ultima resposta 5 de nov. de 2012
Respostas 8
Participantes 3