Dúvida com uma array de Strings que guarda inteiros (esquisito, não?)

3 respostas
thiagossantos

Bom... O problema é que eu tenho uma array de Strings, onde esses Strings são números( :shock: ), é que eu preciso que seja do tipo String pois há uma diferença entre 1007 e +1007 no programa que estou fazendo. Se for +1007 indica o comando 10 com o valor 07, caso seja 1007 é 1007 mesmo...

O problema surge quando tento o seguinte:

if(storage[nextInst].charAt(0) == '+')  {
     //pegar o commando e repassá-lo para o processo de alojamento de programa
     int commandAndNumber = Integer.parseInt(storage[nextInst]);
     int command = commandAndNumber / 100;
     int number = commandAndNumber % 100;
     inputCommand(command, number); //método q executa o comando

     } else {
     //ignorar instrução
    nextInst++;
    }

:arrow: storage é uma array de Strings e nextInt é a posição do elemento.

:arrow: acho que o erro está na linha:
"int commandAndNumber = Integer.parseInt(storage[nextInst]);"

eu não posso converter +1007 para 1007 para poder definir o comando desta forma? por quê? o método "parseInt" não reconhece o caractere +? é isso?

:?: alguém aí pode me explicar por favor :?:

vlw...

3 Respostas

marcoantoniorocha

Deve funcionar:

if(storage[nextInst].charAt(0) == '+') { //pegar o commando e repassá-lo para o processo de alojamento de programa int command = Integer.parseInt(storage[nextInst].substring(1,3)); int number = Integer.parseInt(storage[nextInst].substring(3)); inputCommand(command, number); //método q executa o comando } else { //ignorar instrução nextInst++; }

Abraços

R

Não, dá uma exception( ParseException se não me engano ) , vc pode fazer o seguinte:

String comando = null, valor = null;
      try{
      int commandAndNumber = Integer.parseInt(storage[nextInst]);
      }
      catch(ParseException e){
            //destrincho a string pq sei que não é o número
            comando = storage[nextInst].substring(1,3);
            valor = storage[nextInst].substring(3,5);
      }
      if(comando != null && valor != null){
          System.out.println("Comando: " + comando + " Valor: " + valor);
      }

Vê se funciona ai :smiley:

R

oops :oops:
Acho que demorei mto escrevendo ehhe

Criado 17 de maio de 2005
Ultima resposta 17 de mai. de 2005
Respostas 3
Participantes 3