这是我的代码,用于计算ISBN第13号,但我似乎遇到了麻烦。它一直给我一个关于无效字符常量返回的错误,每次我改变它时,它都会给方法名称一个错误,我不明白为什么。
import java.util.Scanner;
public class ISBN {
public static int VerifyISBN(String isbn) {
if(isbn.matches("[0-9]+") && isbn.length() > 12){
for(int i = 0; i < 12; i++){
char digit = isbn.charAt(i);
int sum = 0;
if (Character.isDigit(digit)){
int digitValue = digit - '0';
if(i % 2 == 0)
sum += digitValue;
else sum += 3 * digitValue;
}
else
return 'invalid'; (This is where I get the error)
}
}
}
public static void main(String[] args) {
final String TITLE = "ISBN-13 Identifier";
System.out.println("Welcome to the " + TITLE);
Scanner input = new Scanner(System.in);
String response;
do {
System.out.print("Enter the first 12 digits of an ISBN-13: ");
String isbn = input.nextLine().trim();
//String isbnVerifier = generateISBN(isbn);
//if(isbn.equals("INVALID"));
System.out.println("The 13th number of" + isbn + " is " +
((verifyISBN(isbn))));
System.out.print("Do this again? [nY]");
response = input.nextLine().toUpperCase();
} while (!response.equals("N"));
input.close();
System.out.println("Thank you for using the " + TITLE);
}
}
答案 0 :(得分:1)
两个问题:
php file.php
是不正确的Java语法。字符串用双引号分隔。单引号用于分隔单字符文字,例如'invalid'
,但不能用于字符串。'a'
。 如果你的意图是返回一个指示输入无效的标记值,你应该使用类似String
的东西,然后调用者可以将其解释为错误条件。
或者,您可以定义抛出异常的方法。