Search code examples
javajava.util.scanneris-empty

what is equivalent to isEmpty() for integers?


Below is the script I have at the moment

import java.util.Arrays;
import java.util.Scanner;

public class SeeWhatTo 
{   
     public static void main(String args[]) {
       Scanner scan = new Scanner(System.in); //define scan  
       int a = scan.nextInt();
       int sum =0;
           while (a>0 )
     {                   
            sum = sum +a;
            a = scan.nextInt();    
     }
        System.out.println(sum);   //print out the sum
    }    
}

Currently, it stores an input value in a and then adds it to sum and once a negative or zero is given as an input, it suspends itself and outputs the sum.

I was wondering if there's an integer equivalent of isEmpty so that i can do while (! a.isEmpty() ) so when there's no input but an enter, then it would stop and prints out the sum.

A natural followup from that would be, is there a way to assign an input integer to a and check if it is empty or not at the same time in the while condition as in while ( ! (a=scan.nextInt()).isEmpty() )


Solution

  • There isn't an equivalent in the sense that you describe, since String is a variable-length collection of characters, and having zero characters is still a valid String. One integer cannot contain zero integers, since by definition, it is already an integer.

    However, your problem revolves around how Scanner works, rather than how int works.

    Take a look at scan.hasNextInt(), which returns true if there is an int to read, and false otherwise. This may give you what you want, using something like:

    Scanner scan = new Scanner(System.in);
    int sum = 0;
    while(scan.hasNextInt())
    {
        int a = scan.nextInt();
        sum = sum + a;
    }
    System.out.println(sum);