Pegar texto antes de um caracter na String

Eai galera, como faço para obter o texto antes de um caracter na string?

Estou salvando algumas coisas numa String…coloquei (:wink: depois dessas coisas para poder marcar o fim de cada uma…

tipo assim…a minha String pedido esta assim:
1;DESCRICAOITEM;12;DESCRICAO ITEM
preciso ler isso jogando por exemplo…o 1 numa lista qtde e o DESCRICAOITEM numa lista item.

tentei alguma coisa como:

List item = new ArrayList();
List qtde = new ArrayList();
item.add(pedido.split(;));
qtde.add(pedido.split(;));

Mas nao deu certo…Alguem pode me ajudar??? :frowning:

Amigo acho que vc pode usar StringTokenizer ou até regex, nunca usei nenhum dos 2 mas sei que eles podem te ajudar :smiley:

http://www.guj.com.br/java.tutorial.artigo.1.1.guj

Você pode utilizar o String.split(), porém ele te retorna um Array.
Então você poderia fazer algo assim

String valores[] = pedidos.split(";");
item.add(valores[0]); //supondo que o primeiro registro seja o item
qtde.add(valores[2]); //supondo que a qtde esteja no registro 2

Manchester…putz nao rolou:

Pedido do Usuario:
12;ABRIGO EXTINTOR CHAPA 75X30X25 EMBUTIR;23;ABRIGO EXTINTOR INOX 85X40X30 EXTERNO;23;ABRIGO HIDRANTE CHAPA 90X60X30 EMBUTIR;
[23]
[12]

eu dei um print na lista de quantidade e de intens e apareceu
qtde: [23]
itens:[12]

colocando o q vc falou:
String valores[ ]= pedido.split(";");
item.add(valores[0]);
qtde.add(valores[2]);

???

Cara, quando vc for usar o split com caractéres especiais tem que colocar o caracter entre colchetes…
Exemplo:

String valores[ ] = pedido.split("[;]"); 

Blz ManchesterR agora entendi o q vc tinha falado!!!

Pedido do Usuario:
1;ABRIGO EXTINTOR CHAPA 75X30X25 EMBUTIR;2;CONEX?O CURVA F?MEA 3/4;3;ADAPTADOR 2.1/2’X1.1/2’-5F;
[1, 2, 3]
[ABRIGO EXTINTOR CHAPA 75X30X25 EMBUTIR, CONEX?O CURVA F?MEA 3/4, ADAPTADOR 2.1/2’X1.1/2’-5F]
ficou assim:

String valores[ ]= pedido.split(";");
            
             
             for(int t=1;t<valores.length;t=t+2)
             {
                 
                     item.add(valores[t]);
             }
             for(int q=0;q<valores.length;q=q+2)
                 
             {
                     qtde.add(valores[q]); 
                 
             }

>