«<identifier> ожидается» ошибка компиляции в Java - PullRequest
0 голосов
/ 03 апреля 2011

Я получаю "<identifier> expected" ошибку в этой строке ....

  private static String getReducedISBN(char 'x') {

... этого кода ....

public class CheckISBN7 {

//private static String originalISBN;  // class variable

public static void main(String[] args) {
    // Prompt the user to enter an ISBN
    SimpleIO.prompt("Enter ISBN: ");
    String originalISBN = SimpleIO.readLine();

    // Get the ISBN number without the dashes
    String reducedISBN = getReducedISBN('-');

    // Get the computed check digit
    int computedCheckDigit = getCheckDigit(reducedISBN);

    // Display check digit entered by the user
    System.out.println("Check digit entered: " + originalISBN.charAt(12));

    // Display computed check digit
    System.out.println("Check digit computed: " + computedCheckDigit);
}

private static String getReducedISBN(char 'x') {
    SimpleIO.prompt("Enter ISBN: ");
    String originalISBN = SimpleIO.readLine();
    int dashPos1 = originalISBN.indexOf("x");
    int dashPos2 = originalISBN.indexOf("x", dashPos1 + 1);
    String reducedISBN = originalISBN.substring(0, dashPos1) +
            originalISBN.substring(dashPos1 + 1, dashPos2) +
            originalISBN.substring(dashPos2 + 1, 11);
    return reducedISBN;
}

private static int getCheckDigit(String reducedISBNParameter) {
    int total = 0;
    final String digits = "0123456789X";
    for(int i = 0, j = 10; i <= 8; i++, j++) {
        total += j *
                (Integer.parseInt(reducedISBNParameter.substring(i, i + 1)));
    }
    int checkDigit = 10 - ((total - 1) % 11);
    int computedCheckDigit = digits.charAt(checkDigit);
    return computedCheckDigit;
    }
}

Не могу на самом делевыяснить проблему, любая помощь будет высоко ценится.

Ответы [ 2 ]

4 голосов
/ 03 апреля 2011

'x' не является идентификатором (переменная или что-то еще), это буквальный символ.Точно так же "x" является литеральной строкой.Замените char 'x' на Character x и "x" на x.toString(), чтобы получить то, что вы хотите.

4 голосов
/ 03 апреля 2011

Вы пытаетесь передать значение char 'x' в сигнатуру вашего метода, который не является допустимым синтаксисом:

private static String getReducedISBN(char 'x') {

Вы хотели использовать x в качестве имени переменной?

private static String getReducedISBN(char x) {

Как и здесь, так как я предполагаю, что вы пытаетесь найти индекс того, что вы передаете в качестве символа разделителя вместо строки "x":

int dashPos1 = originalISBN.indexOf(x);
int dashPos2 = originalISBN.indexOf(x, dashPos1 + 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...