我一直得到"无效的常数错误"我的计划,我不知道为什么?

时间:2016-11-01 18:49:45

标签: java eclipse loops return

这是我的代码,用于计算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);

}

}

1 个答案:

答案 0 :(得分:1)

两个问题:

  1. 文字php file.php 是不正确的Java语法。字符串用双引号分隔。单引号用于分隔单字符文字,例如'invalid',但不能用于字符串。
  2. 声明该方法返回一个整数,因此您无法返回'a'
  3. 如果你的意图是返回一个指示输入无效的标记值,你应该使用类似String的东西,然后调用者可以将其解释为错误条件。

    或者,您可以定义抛出异常的方法。