Java ISBN检查器-无循环

Java ISBN检查器-无循环,java,isbn,Java,Isbn,我正在尝试做一个ISBN检查,但它不起作用。例如,用户输入013601267并返回0136012671。我不明白问题出在哪里。没有循环。 任何帮助都会很好 import java.util.*; public class ISBN{ public static void main(String[]args){ Scanner in=new Scanner(System.in); System.out.print("Enter 9 digit ISBN"); //vari

我正在尝试做一个ISBN检查,但它不起作用。例如,用户输入013601267并返回0136012671。我不明白问题出在哪里。没有循环。 任何帮助都会很好

import java.util.*;
public class ISBN{
public static void main(String[]args){
    Scanner in=new Scanner(System.in);

    System.out.print("Enter 9 digit ISBN");
    //variables//
    int d1=in.nextInt();
    int d2=in.nextInt();
    int d3=in.nextInt();
    int d4=in.nextInt();
    int d5=in.nextInt();
    int d6=in.nextInt();
    int d7=in.nextInt();
    int d8=in.nextInt();
    int d9=in.nextInt();
     int d10=(d1*1+d2*2+d3*3+d4*4+d5*5+d6*6+d7*7+d8*8+d9*9) %11;
    //keyboard


    if (d10==10){
    System.out.print("ISBN"+d1+d2+d3+d4+d5+d6+d7+d8+d9+"X");}
    else if(d10 !=10); {
    System.out.print("ISBN"+d10);}
    }
}

当有人输入ISBN时,他们是否在输入ISBN时中间留有空格?
nextInt()

如果您一次输入一个,那么它应该可以工作

在数字之间输入空格,或在各自的行上输入<代码>扫描仪
将处理其余部分

注:

如果您不希望用户必须逐个输入数字,请尝试将其输入作为:

String digits=in.nextLine()

您可以使用
digits.charAt(0)
等引用该字符串中的每个数字

int d1=Integer.parseInt("" + digits.charAt(0));
等等。这将把单个字符
数字.charAt(0)
转换为公式的整数


希望这有帮助

预期的输出是什么?整数输入是0136067。输出将是末尾的1或x。会发生什么情况?请阅读并相应增强您的问题。问题是
nextInt()
。它返回一个可以由多个数字组成的数字。我建议改为使用
next()
,或者使用
nextLine()
,两者都返回
字符串。然后,您可以检查结果的各个字符。您的解决方案不友好。。。用户应该有机会在没有空格的情况下输入整个输入内容(新行等)。@zlakad这样更好吗?第一部分并不是一个解决方案,而是将Tillix指向这个问题,这样他们就不会被绊倒了谢谢@DawoodibnKareem我应该在发布之前检查一下。他们现在应该工作了