How to read multiple Integer values from a single line of input in Java?

后端 未结 17 1364
天涯浪人
天涯浪人 2020-11-27 03:16

I am working on a program and I want to allow a user to enter multiple integers when prompted. I have tried to use a scanner but I found that it only stores the first intege

17条回答
  •  [愿得一人]
    2020-11-27 03:41

    Here is how you would use the Scanner to process as many integers as the user would like to input and put all values into an array. However, you should only use this if you do not know how many integers the user will input. If you do know, you should simply use Scanner.nextInt() the number of times you would like to get an integer.

    import java.util.Scanner; // imports class so we can use Scanner object
    
    public class Test
    {
        public static void main( String[] args )
        {
            Scanner keyboard = new Scanner( System.in );
            System.out.print("Enter numbers: ");
    
            // This inputs the numbers and stores as one whole string value
            // (e.g. if user entered 1 2 3, input = "1 2 3").
            String input = keyboard.nextLine();
    
            // This splits up the string every at every space and stores these
            // values in an array called numbersStr. (e.g. if the input variable is 
            // "1 2 3", numbersStr would be {"1", "2", "3"} )
            String[] numbersStr = input.split(" ");
    
            // This makes an int[] array the same length as our string array
            // called numbers. This is how we will store each number as an integer 
            // instead of a string when we have the values.
            int[] numbers = new int[ numbersStr.length ];
    
            // Starts a for loop which iterates through the whole array of the
            // numbers as strings.
            for ( int i = 0; i < numbersStr.length; i++ )
            {
                // Turns every value in the numbersStr array into an integer 
                // and puts it into the numbers array.
                numbers[i] = Integer.parseInt( numbersStr[i] );
                // OPTIONAL: Prints out each value in the numbers array.
                System.out.print( numbers[i] + ", " );
            }
            System.out.println();
        }
    }
    

提交回复
热议问题