简体   繁体   中英

How to get multiple inputs on the same line without white space

I am doing a program for my CS class. It wasn't hard to setup and it does what it is supposed to. My problem though is that I want it to take all the inputs on the same line without any white space. The program is supposed to take the first 9 digits of an ISBN and find the tenth and print it. I know you can do this by taking the numbers as a string and then parsing it (I believe?) so you can get the separate ints. Although I am not entirely sure I set up the while loop properly last time I tried and doing so would make me have to change my code entirely no? Here is the problem: (Business: check ISBN-10) An ISBN-10 (International Standard Book Number) consists of 10 digits: d1d2d3d4d5d6d7d8d9d10. The last digit, d10, is a checksum, which is calculated from the other nine digits using the following formula: (d1 * 1 + d2 * 2 + d3 * 3 + d4 * 4 + d5 * 5 + d6 * 6 + d7 * 7 + d8 * 8 + d9 * 9) % 11 If the checksum is 10, the last digit is denoted as X according to the ISBN-10 convention. Write a program that prompts the user to enter the first 9 digits and displays the 10-digit ISBN (including leading zeros). Your program should read the input as an integer. Either way here is the code without the loop taking in the inputs with the white space:

/* Class:        CS1301
* Section:       9:30
* Term:          Fall 2015
* Name:          Matthew Woolridge
* Instructor:    Mr. Robert Thorsen
* Assignment:    4
* Program:       1
* ProgramName:   ISBN_Number
* Purpose:       Prompts the user to enter the first nine numbers of an ISBN and calculates the tenth
* Operation:     The information to be numbers are statically instantiated in the code and
*                the table is output to the screen.
* Input(s):      The user inputs the first nine ISBN numbers
* Output(s):     The output will be the full the tenth ISBN number in the full number
* Methodology:   The program will use if statements and defined variables which use the user input variables to calculate the ISBN
* and return it to the user.
*
*/

import java.util.Scanner;
public class ISBN_Number
{

   public static void main (String[] args)
   {

     /******************************************************************************
      *                          Declarations Section                               *
      ******************************************************************************/
      /****************************CONSTANTS********************************/
      int [] ISBN = new int [8];
      int num1 = 0;
      int nextNum;
      int i; 
      int input=0;
      int num10=0;
      String fullIsbn;

      Scanner scan = new Scanner (System.in); //Scanner utility initialization

     /******************************************************************************
      *                             Inputs Section                                  *
      ******************************************************************************/

      System.out.print("Please input the first nine digits (between 0-9) of your ISBN not including the leading 0: ");
      for (i = 0; i<ISBN.length;i++)
      {
         nextNum = scan.nextInt(); // For loop that asks for an input until it fills the array of 8
         ISBN[i] = nextNum;
         ++input;
      }

     /****************************variables********************************/
      if (input == 8)
      {
       num10 = (ISBN[0] * 1 + ISBN[1] * 2 + ISBN[2] * 3 + ISBN[3] * 4 + ISBN[4] * 5 + ISBN[5] * 6 + ISBN[6] * 7 + ISBN[7] * 8 + ISBN[8] * 9) % 11; // Calculates the value of num10
      }
      else 
      {
       System.out.println("You did not input enough or input too many digits.");
      }

     /******************************************************************************
      *                             Processing Section                            *
      ******************************************************************************/

      if (num10 == 10)
      { 
         fullIsbn = num1 + ISBN[0] + "" + ISBN[1] + "" + ISBN[2] + "" + ISBN[3] + "" + ISBN[4] + "" + ISBN[5] + "" + ISBN[6] + "" + ISBN[7] + "" + ISBN[8] + "" + "X";
      }
      else  // Determines if num10 is equal to x or not and prints
      {
         fullIsbn = num1 + "" + ISBN[0] + "" + ISBN[1] + "" + ISBN[2] + "" + ISBN[3] + "" + ISBN[4] + "" + ISBN[5] + "" + ISBN[6] + "" + ISBN[7] + "" + ISBN[8] + "" + num10;
      }

      /******************************************************************************
       *                              Outputs Section                                *
       ******************************************************************************/

      System.out.print("The full ISBN number is " + fullIsbn); // Prints the full 10 digit isbn
   } // Rnds string
} // Ends program

Here is the idea:

  1. Take the user input as an index of an array of ints.
  2. Sytem.out.print(yourArrayName[9]); //print out the 10th number of the array

For example:

import java.util.Scanner;
public class Main
{

    public static void main (String[] args)
    {
        Scanner keyboard = new Scanner(System.in);
        int [] ISBN = new int [10];
        int input =0;

        System.out.print("Give me 10 numbers: ");

        for (int i = 0; i<ISBN.length;i++){
            int nextNumber = keyboard.nextInt();
            ISBN[i] = nextNumber;
            ++input;

            if (input==10){
                System.out.print("The tenth number you gave me is: "+ISBN[9]);
            }
        }

    } 
} 

You should be able to apply the above strategy like so to achieve what you are asking:

import java.util.*;
public class Main
{

    public static void main (String[] args)
    {
        Scanner keyboard = new Scanner(System.in);
        int [] ISBN = new int [10];
        int input =0;
        String fullIsbn;

        System.out.print("Give me 10 numbers: ");

        for (int i = 0; i<ISBN.length;i++){
            int nextNumber = keyboard.nextInt();
            ISBN[i] = nextNumber;
            ++input;

            if (input==10){
                ISBN[0]=0;
                ISBN[9] = (ISBN[0] * 1 + ISBN[1] * 2 + ISBN[2] * 3 + ISBN[3] * 4 + ISBN[4] * 5 + ISBN[5] * 6 + ISBN[6] * 7 + ISBN[7] * 8 + ISBN[8] * 9) % 11;
                if (ISBN[9] == 10)
                {

                    fullIsbn = ISBN[0] + "" + ISBN[1] + "" + ISBN[2] + "" + ISBN[3] + "" + ISBN[4] + "" + ISBN[5] + "" + ISBN[6] + "" + ISBN[7] + "" + ISBN[8] + "" + "X";
                }
                else  // Determines if num10 is equal to x or not and prints
                {
                    fullIsbn = ISBN[0] + "" + ISBN[1] + "" + ISBN[2] + "" + ISBN[3] + "" + ISBN[4] + "" + ISBN[5] + "" + ISBN[6] + "" + ISBN[7] + "" + ISBN[8] + "" + ISBN[9];

                }
                System.out.print("The tenth number you gave me is: "+fullIsbn);
            }
        }

    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM