【发布时间】:2015-03-01 03:18:03
【问题描述】:
我是新来的,对编程非常陌生。实际上,我现在正在参加 Java 编程入门课程,而我的老师并不是很有帮助,所以我只想让其他人帮助我解决这个问题。任何事情都会受到赞赏。我的程序旨在根据用户在控制台中输入的内容生成 ISBN-10 号码。用户在控制台中输入 9 个数字。我试图让程序做的是测量输入字符的长度,如果它不等于 9,那么它会说“你必须输入 9 个数字”。这是我所拥有的:
Scanner input = new Scanner(System.in);
System.out.println("Enter 'C' for console generation of an ISBN, or 'R' for a random generation of an ISBN:");
String letter = input.next().toLowerCase();
if (letter==c) {
System.out.println("Enter the first 9 digits of an ISBN:");
int d1 = input.nextInt();
int d2 = input.nextInt();
int d3 = input.nextInt();
int d4 = input.nextInt();
int d5 = input.nextInt();
int d6 = input.nextInt();
int d7 = input.nextInt();
int d8 = input.nextInt();
int d9 = input.nextInt();
int numbers = (d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9);
int d10 = (d1 * 1 + d2 * 2 + d3 * 3 + d4 * 4 + d5 * 5 + d6 * 6 + d7 * 7 + d8 * 8 + d9 * 9) % 11;
if (d10 == 10) {
System.out.println("Console generated ISBN-10 is " + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 + "X");
}
else if (numbers.length() != 9) {
System.out.println("You need to enter exactly 9 digits");
System.exit(2);
}
感谢您的帮助!!!
【问题讨论】:
-
它的作用与您的预期有何不同?
-
它实际上并没有工作。它说“else if (numbers.length() !=9)”的地方说这是错误的。整行下面有一条红线,它不起作用,因为 length() 方法只有在里面有一个字符串而不是 int 时才起作用。我只是不知道如何解决这个问题。
-
当您的代码到达
int numbers = (d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9);时,用户已经准确输入了 9 个数字。这就是您可以删除numbers变量以及if部分的原因。 -
还有,应该是
if (letter.equals("c"))。 -
但是如果输入的数字数量不等于9,我不需要if语句吗?
标签: java string-length