Java ISBN检查器-无循环
我正在尝试做一个ISBN检查,但它不起作用。例如,用户输入013601267并返回0136012671。我不明白问题出在哪里。没有循环。 任何帮助都会很好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
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我应该在发布之前检查一下。他们现在应该工作了