caxinaswin Posted April 30, 2015 at 11:30 AM Report Share #582189 Posted April 30, 2015 at 11:30 AM (edited) tenho um exercicio que basicamente me pede para ir inserindo items para auxiliar nas compras de produtos, se for inserido um item que já exista esse será incrementado, basicamente tenho que adicionar items da seguinte forma introduza um item: bola txt: bola#1 " " "" "" : bola txt: bola#2 tou a ter alguns problemas com o seguinte codigo talvez o loop não esteja muito bem public static void alterarDados(String nome,int quantidade) { String linha = ""; for(int i = 0;i<linhas.size();i++) // linhas defenido como global var, armazena num metodo anterior todas as linhas do ficheiro { linha = linhas.get(i); String[] campos = linha.split("#"); // separa os campos if(nome.equals(campos[0])) // quando o primeiro campo for igual ao nome inserido { int aux = 0; int campo1 = 0; campo1 = Integer.parseInt(campos[1]); System.out.print(campo1 + " "); aux = campo1 + quantidade; String linha1 = nome + "#" + aux; linhas.remove(i); linhas.add(i,linha1); } } agradecia ajuda :S } Edited April 30, 2015 at 01:10 PM by apocsantos geshi Link to comment Share on other sites More sharing options...
alexandre1985 Posted April 30, 2015 at 07:18 PM Report Share #582232 Posted April 30, 2015 at 07:18 PM não estou a perceber a tua duvida http://alexandre1985.github.io Link to comment Share on other sites More sharing options...
caxinaswin Posted April 30, 2015 at 08:51 PM Author Report Share #582236 Posted April 30, 2015 at 08:51 PM a minha dúvida prende-se com o facto de quando vou fazer os testes, comeca me a a aparecer duas vezes o mesmo item em linhas separadas, ou ele incrementa mais 1 no item ficando 3 quando na verdade só introduzi o item 2 vezes por isso é que digo que este loop não deve estar bem :S Link to comment Share on other sites More sharing options...
siul72 Posted May 18, 2015 at 03:00 PM Report Share #583361 Posted May 18, 2015 at 03:00 PM (edited) Boas: linhas o que é? uma Lista de Strings? Duas coisas: 1. Utilizar linhas.remove(i) num loop que precorre os valores de linhas é perigoso... 2. Se o objectivo é actualizar o valor porque o apagas e crias um novo? Finalmente nao sei se faz parte do exercicio mas utilizar Strings para esta finalidade é muito pouco eficiente, devias utilizar uma classe do tipo: Class Produto { String nome; int quantidade; } depois tinhas uma List<Produto> listaDeProdutos = new ArrayList<>(); e para encontrar e actualizar: for(Produto p : listaDeProdutos){ if(p.nome.equals(nome){ p.quantidade = quantidade; } } se nao encontrar adicona à lista..... Edited May 19, 2015 at 10:46 AM by apocsantos tag code + geshi Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now