Java 如何在没有空格的情况下在同一行上获得多个输入

Java 如何在没有空格的情况下在同一行上获得多个输入,java,input,jgrasp,isbn,Java,Input,Jgrasp,Isbn,我正在为我的CS班做一个程序。设置起来并不难,它做了它应该做的事情。但我的问题是,我希望它在同一行上接受所有输入,而不带任何空格。这个程序应该取ISBN的前9位,然后找到第10位并打印出来。我知道可以通过将数字作为字符串,然后对其进行解析(我相信?),从而获得单独的整数。虽然我不完全确定上次我是否正确设置了while循环,但这样做会使我不得不完全更改代码吗?问题是: (业务:勾选ISBN-10)ISBN-10(国际标准书号) 由10位数字组成:D1D2D3D5D6D7D8D9D10。最后一个数字

我正在为我的CS班做一个程序。设置起来并不难,它做了它应该做的事情。但我的问题是,我希望它在同一行上接受所有输入,而不带任何空格。这个程序应该取ISBN的前9位,然后找到第10位并打印出来。我知道可以通过将数字作为字符串,然后对其进行解析(我相信?),从而获得单独的整数。虽然我不完全确定上次我是否正确设置了while循环,但这样做会使我不得不完全更改代码吗?问题是: (业务:勾选ISBN-10)ISBN-10(国际标准书号) 由10位数字组成:D1D2D3D5D6D7D8D9D10。最后一个数字d10是校验和, 使用以下公式从其他九位数字计算得出: (d1*1+d2*2+d3*3+d4*4+d5*5+ d6*6+d7*7+d8*8+d9*9)%11 如果校验和为10,根据ISBN-10,最后一位数字表示为X 惯例。编写一个程序,提示用户输入前9位数字和 显示10位ISBN(包括前导零)。你的程序应该是 输入是一个整数。 无论哪种方式,这里的代码都没有使用空格接收输入的循环:

/* 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
/*类别:CS1301
*区段:9:30
*任期:2015年秋季
*姓名:马修·伍尔里奇
*讲师:罗伯特·索森先生
*作业:4
*节目:1
*节目名称:国际标准书号
*目的:提示用户输入ISBN的前九个数字并计算第十个数字
*操作:将要成为数字的信息在代码和
*表格被输出到屏幕上。
*输入:用户输入前九个ISBN编号
*输出:输出将是完整数字中第十个ISBN数字的完整数字
*方法:程序将使用if语句和使用用户输入变量计算ISBN的定义变量
*并将其返回给用户。
*
*/
导入java.util.Scanner;
公共类ISBN\U编号
{
公共静态void main(字符串[]args)
{
/******************************************************************************
*声明科*
******************************************************************************/
/****************************常数********************************/
int[]ISBN=新int[8];
int num1=0;
int nextNum;
int i;
int输入=0;
int num10=0;
字符串完整ISBN;
Scanner scan=新扫描仪(System.in);//扫描仪实用程序初始化
/******************************************************************************
*输入部分*
******************************************************************************/
System.out.print(“请输入ISBN的前九位数字(0-9之间),不包括前导的0:”;
对于(i=0;i,以下是想法:

  • 将用户输入作为int数组的索引
  • system.out.print(yourArrayName[9]);//打印出数组的第10个数字
  • 例如:

    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]);
                }
            }
    
        } 
    } 
    
    import java.util.Scanner;
    公共班机
    {
    公共静态void main(字符串[]args)
    {
    扫描仪键盘=新扫描仪(System.in);
    int[]ISBN=新int[10];
    int输入=0;
    系统输出打印(“给我10个数字:”;
    
    对于(int i=0;我想我明白你在做什么了,我以前试过,但我需要用给定的公式计算第十个数字。如果第十个数字等于10,那么它需要打印X。如从变量开始所示。循环可以工作,谢谢。^^添加了一个解决方案,可以解决你的问题。@snipem1438Edit:它没有在一行中输入所有内容,无需空格,一旦输入,就会返回错误。我将更新以反映@Jonathanscialpit当前的外观。我提供的答案不会为我返回错误。但此时,我认为我为您编写了90%的程序,这应足以让您到达需要的位置o因为这是一个硬件问题。@snupem1438好的,我应该澄清我的问题是,我希望这些数字输入在同一行中,不带空格,例如:1234567。现在它仍然在单独的行中或带有输入。否则就可以了。我上一个版本的代码也可以工作,但我试图使用数组来删除wh谢谢你,到目前为止你提供的帮助非常有用。
    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);
                }
            }
    
        }
    }