Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 181
  • Last Modified:

Trying to have a user input integers on the command line and when they want to end enter in a non integer loop should start.

I'm trying to have a user enter in a bunch of integers on the command line and it will keep prompting them for more integers until they enter in any non integer. At that point the looop should quit. However i keep getting number format exception ..

my current code
---------------------------
System.out.println("Enter in address numbers when finished just enter in an invalid input,anything besides an integer is a valid input");
                        addresses = new int[num_address];
                        int i=0;
                        boolean flag=true;
                        String test;
                while(flag == true)
                {
                              test = buffer.readLine();
                              if(!Character.isDigit(test.charAt(0)))
                              flag=false;
                              
                    else
                    {
                                addresses[i] = Integer.parseInt(buffer.readLine());
                                i++;
                            }
                        }
---------------------------
0
tyweed420
Asked:
tyweed420
2 Solutions
 
engineer007Commented:
Try this one    System.out.println("Enter in address numbers when finished just enter in an invalid input,anything besides an integer is a valid input");

  int[] addresses = new int[100];
  BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
  int i = 0;
  boolean flag = true;
  String test;
  while (flag == true) {
    test = buffer.readLine();
    if (!Character.isDigit(test.charAt(0)))
      flag = false;

    else {
      addresses[i] = Integer.parseInt(test.charAt(0)+"");
      i++;
    }
  }

//You were calling readLine() a couple of times.
0
 
CodingExpertsCommented:
     System.out.println("Enter in address numbers when finished just enter in an invalid input,anything besides an integer is a valid input");
      addresses = new int[num_address];
       int i=0;
    String test;
    while(true)
    {
      test = buffer.readLine();
      if(test != null)
      {
        if(!Character.isDigit(test.charAt(0)))
          break;            
          else
          {
             addresses[i] = Integer.parseInt(buffer.readLine());
            i++;
          }
        }
    }
  }
}
0
 
CEHJCommented:
In addition to the problem mentioned by engineer007, your loop test should also be

while(flag == true && i < addresses.length)
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now