| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2008 21:44:53
|
Marcaobu
Thread.start()
Membro desde: 29/03/2008 08:24:29
Mensagens: 43
Offline
|
boa noite pessoal.
este código
está abrindo meu arquivo .txt
o resultado fica assim
Codigo;Descricao;Preco
9603;ADAPTADOR USB VIRTUAL HD KEY JETZ;23.50
7963;CABO ADAP. FONTE 20/24 PINOS;1.50
2085;CABO AUDIO DIGITAL P/CD-ROM/DVD/GRAVADOR;1.00
6100;CABO HD IDE HD/CD ROM/GRAVADOR;1.50
31836;CABO HDMI X DVI-D 1,83M (6 FT);20.00
10305;CABO HDMI X DVI-D 3,05M (10 FT);22.00
18315;CABO HDMI X HDMI 1,83M (6 FT);18.00
30518;CABO HDMI X HDMI 3,05M (10 FT);21.00
14183;CABO HDMI X MINI HDMI 1,83M (6 FT);23.00
25;CABO PARALELO P/ IMPRESSORA (E);2.50
1625;CABO SCSI 50 PINOS;6.50
1287;CABO SCSI 68 PINOS UW .;6.50
2347;CABO SERIAL DB25M/F P/ MODEM EXT. RS232;2.50
2315;CABO SERIAL IMPRESORA DB25M/M;2.50
7530;CABO USB A/B P/ IMPRE E SCANNER;3.00
6223;CALCUL. HP 12C FINANC. INGLES;85.00
128;CALCUL. HP 12C FINANC. PORTUGUES;85.00
2343;CAM. BATERIA AIPTEK US-N 5700/GEN.DV610;8.00
2344;CAM. BATERIA AIPTEK US-P 5200/6800;8.00
2819;CAM. CARRE.P. SONY BCG-34HLD2 A PALITO;9.50
65459;CAM. CARRE.P. SONY BCG-34HLD4 ANLOG;17.00
670;CAM. CARRE.P. SONY BCG-34HRMF4 2700;29.00
o dados estão separados por ;
como eu faço para adicionar cada um deles em uma lista. vou ter de criar 3 vetores String???
alguem pode me dar uma ajuda
os meus tres Array seriam assim?
String codigo[], descricao[], preco[];
e como faço para cada item entrar dentro do Array correto...
cara to quebrando muito a cabeça, mas não consigo....
obrigado por enquanto.....
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2008 22:08:39
|
fernandoeick
JavaGuru
![[Avatar]](/images/avatar/45694f27d75ef49ace2d62206a820a2a.jpg)
Membro desde: 24/01/2007 14:18:48
Mensagens: 286
Localização: Ijui - RS
Offline
|
Sugestão:
Dê uma estudada em StringTokenizer:
http://java.sun.com/javase/6/docs/api/
Crie um token, em seu caso será o ";". Cada vez que encontrar o token, você manda o conteúdo para um ArrayList por exemplo (no seu caso seriam três). Em cada linha, você tem três tokes, daí vc itera no swicth. Quando leu os três tokens significa que mudou de linha e vc recomeça o switch no primeiro case e recomeça a inserção dos valores nos Arrays...
A lógica é essa. Só te resta implementar.
Abraço.
|
E dá-lhe Grêmio! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2008 22:08:52
|
Andre Brito
Virtual Machine Man
![[Avatar]](/images/avatar/4dff7cccfc092f41b8170fc6d7dc93c0.jpg)
Membro desde: 21/07/2007 17:44:31
Mensagens: 786
Localização: Paraná
Offline
|
Você pode fazer muitas coisas. Uma delas é usar uma lista de Strings, como você falou (se você fizer usando Collections em vez de arrays 'primitivos', com o [], fica mais fácil). Outra é usar um ArrayList e armazenar um objeto que contenha o código, o nome e o preço. Outra ainda é usar um Map, que como key tenha o código e como o value tenha um objeto, com String e o preço. Você ainda pode adicionar uma descrição e afins. (eu ficaria com essa). Pra cuidar que cada um entre no array correto, procure por StringTokenizer. Ou ainda, você pode usar o método split da classe String (split(";")) e passar a primeira posição para o array código, a segunda para o array nome e a terceira pro array de preços. [editado] opz, foi junto :p [/editado]
This message was edited 1 time. Last update was at 04/05/2008 22:10:35
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2008 22:24:13
|
alves.Felipe
Debugger
Membro desde: 21/01/2008 13:45:56
Mensagens: 67
Localização: Curitiba - Pr
Offline
|
Ola,
cara.. acho que seria mais fácil usar o tokenizer para separar os itens, e criar um objeto Produto. Que vc setaria o código,
descrição e preço, e adicionaria um único ArrayList o objeto Produto. Assim não iria ter problemas para obter os valores depois..
abraco
|
Felipe Alves |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2008 07:25:56
|
lucamartins
Thread.start()
![[Avatar]](/images/avatar/16f26d49cfe75d6731a310494bf56f7d.jpg)
Membro desde: 30/04/2008 15:17:55
Mensagens: 47
Offline
|
O ideal seria criar um Objeto seu que encapsule estes atributos, então vc lê do aquivo usando o StringTokenizer, conforme sugestão, e para cada linha do arquivo vc cria um novo objeto e insere na sua lista.
|
== The C Style old school ==
System.out.printf("%s", Luca.getDefault().toString() )
out: AOWushu por default! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2008 19:43:51
|
Marcaobu
Thread.start()
Membro desde: 29/03/2008 08:24:29
Mensagens: 43
Offline
|
blz, entendi a lógica, mas não consegui emplementar, alguem poderia me ajduar a implementar esse algoritmo???
usando o tokenizer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2008 21:04:41
|
Bruno Laturner
Virtual Machine Man
Membro desde: 18/02/2008 16:17:53
Mensagens: 692
Localização: 78050-000, Brazil
Offline
|
Dentro do while que lê cada linha, use um temp.split(";"); e jogue seu retorno pra um array de String.
adicione a posição 0 desse array a uma lista que conterão os códigos, posição 1 p/ uma lista de descrição, 2 p/ de preço.
Depois faça o que quiser com essas listas.
Eu particulamente implementaria um classe produto pra conter codigo, descrição e o preço, e só usaria uma lista de produtos pra conter tudo.
|
A resposta acima foi achada em menos de 5 minutos no google.
A API do Java é como o Lego, para brincar basta sair procurando as peças que se encaixam.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2008 21:32:59
|
Marcaobu
Thread.start()
Membro desde: 29/03/2008 08:24:29
Mensagens: 43
Offline
|
fiz assim
só que a saida quando mando escrever só para teste fica assim
[Ljava.lang.String;@19189e1
[Ljava.lang.String;@1f33675
[Ljava.lang.String;@7c6768
[Ljava.lang.String;@1690726
[Ljava.lang.String;@5483cd
[Ljava.lang.String;@9931f5
[Ljava.lang.String;@19ee1ac
[Ljava.lang.String;@1f1fba0
[Ljava.lang.String;@1befab0
[Ljava.lang.String;@13c5982
[Ljava.lang.String;@1186fab
[Ljava.lang.String;@14b7453
[Ljava.lang.String;@c21495
[Ljava.lang.String;@1d5550d
[Ljava.lang.String;@c2ea3f
[Ljava.lang.String;@a0dcd9
[Ljava.lang.String;@1034bb5
[Ljava.lang.String;@15f5897
[Ljava.lang.String;@b162d5
[Ljava.lang.String;@1cfb549
[Ljava.lang.String;@186d4c1
[Ljava.lang.String;@f9f9d8
[Ljava.lang.String;@1d9dc39
to ficando doido já.......
meu deus do céu.........
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/05/2008 22:23:53
|
lucamartins
Thread.start()
![[Avatar]](/images/avatar/16f26d49cfe75d6731a310494bf56f7d.jpg)
Membro desde: 30/04/2008 15:17:55
Mensagens: 47
Offline
|
Pq vc mandou imprimir o array.
Tente assim:
This message was edited 1 time. Last update was at 06/05/2008 22:24:59
|
== The C Style old school ==
System.out.printf("%s", Luca.getDefault().toString() )
out: AOWushu por default! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/05/2008 15:06:45
|
Marcaobu
Thread.start()
Membro desde: 29/03/2008 08:24:29
Mensagens: 43
Offline
|
Cara, deu certinho.... muito obrigado pela ajuda... já está separando tudinho por ;
vc é minto gente boa manow, brigadão.....
tem como vc me dar uma idéia de como incrementar para receber cada informção dentro de um array. para em seguinda eu classificar pelo preço???
serria um array para, codigo, descrição e preco
um para kada
muito obrigado...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/05/2008 12:45:32
|
lucamartins
Thread.start()
![[Avatar]](/images/avatar/16f26d49cfe75d6731a310494bf56f7d.jpg)
Membro desde: 30/04/2008 15:17:55
Mensagens: 47
Offline
|
Marcaobu wrote:Cara, deu certinho.... muito obrigado pela ajuda... já está separando tudinho por ;
vc é minto gente boa manow, brigadão.....
tem como vc me dar uma idéia de como incrementar para receber cada informção dentro de um array. para em seguinda eu classificar pelo preço???
serria um array para, codigo, descrição e preco
um para kada
muito obrigado...
Desculpa, não entendi. Podia explicar de novo??
|
== The C Style old school ==
System.out.printf("%s", Luca.getDefault().toString() )
out: AOWushu por default! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/05/2008 22:50:38
|
Marcaobu
Thread.start()
Membro desde: 29/03/2008 08:24:29
Mensagens: 43
Offline
|
e ai blz... é o seguinte... depois de feito a leitura das informações do arquivo, eu preciso separar os dados, são 3 informações, codigo, descricao, preco
feito isso, coloquei dentro do array, cada um deles....
a maneira que fiz axei tipo uma gambeara.... deve ter forma melhor para melhorar este código.... gostaria de umas sugestões...
e como eu faria para ordenar pelo preço dos produtos.....
segue o código
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/05/2008 23:54:58
|
Bruno Laturner
Virtual Machine Man
Membro desde: 18/02/2008 16:17:53
Mensagens: 692
Localização: 78050-000, Brazil
Offline
|
Fica tudo dentro e organizado da sua lista de produtos. Use o Collections.sort(List, Comparator) e implemente um Comparator para ordenar por qqr campo que quiser.
This message was edited 2 times. Last update was at 11/05/2008 23:59:46
|
A resposta acima foi achada em menos de 5 minutos no google.
A API do Java é como o Lego, para brincar basta sair procurando as peças que se encaixam.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/05/2008 17:52:31
|
Marcaobu
Thread.start()
Membro desde: 29/03/2008 08:24:29
Mensagens: 43
Offline
|
blz, teu código ta bem fácil de entender, e muito legal....
só que ta gerando esse erro na hora de exeutar.....
Exception in thread "main" java.lang.NumberFormatException: For input string: "Preco"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at Produto.<init>(Produto.java:11)
at LeProdutos.main(LeProdutos.java:2
o que será q está dando de errado com o preco????
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/05/2008 22:47:40
|
Bruno Laturner
Virtual Machine Man
Membro desde: 18/02/2008 16:17:53
Mensagens: 692
Localização: 78050-000, Brazil
Offline
|
Algum dos preços do teu arquivo deve estar com formato errado, o número deve ser somente números, com ponto separando as cadas decimais, mais nada, nem espaços.
Tópicos mais avançados p/ estudo, só siga quando souber mais sobre o assunto:
----------------
Sobre a classe Produto, eu a refaria do seguinte modo:
Isso é só um exemplo, depois dentro do construtor(ou algo do tipo) de cada classe tratar as Strings de acordo para representarem o valor interno apropriado da classes. Esse código é por que a representação do código pode mudar, e também pode ser diferente na hora de colocar do banco de dados, não é uma boa idéia usar Strings como chaves primárias. Quanto ao preço, ele também recebe a sua classe que tem seus próprios métodos de cálculo de valores, conversão entre moedas, e formatação.
Obs: Isso pode ser um pouco avançado demais, mas é essencial em um código que vá rodar numa aplicação de verdade. Se não entender agora, guarde de exemplo pra depois, e implemente como estava antes, só com Strings e o double.
This message was edited 1 time. Last update was at 18/05/2008 22:53:11
|
A resposta acima foi achada em menos de 5 minutos no google.
A API do Java é como o Lego, para brincar basta sair procurando as peças que se encaixam.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
|
|