&引用&书信电报;标识符>;“预期”;Java中的编译错误

&引用&书信电报;标识符>;“预期”;Java中的编译错误,java,identifier,Java,Identifier,我在这行上得到了“预期的”错误 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 Simple

我在这行上得到了“
预期的
”错误

  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;
    }
}
公共类检查ISBN7{
//私有静态字符串originalISBN;//类变量
公共静态void main(字符串[]args){
//提示用户输入ISBN
SimpleIO.prompt(“输入ISBN:”);
字符串originalISBN=SimpleIO.readLine();
//获取不带破折号的ISBN编号
字符串reducedISBN=getReducedISBN('-');
//获取计算出的校验位
int computedCheckDigit=getCheckDigit(reducedISBN);
//显示用户输入的校验位
System.out.println(“输入的检查数字:+原始BN.charAt(12));
//显示计算的校验位
System.out.println(“计算的校验位:“+计算的校验位”);
}
私有静态字符串getReducedISBN(字符'x'){
SimpleIO.prompt(“输入ISBN:”);
字符串originalISBN=SimpleIO.readLine();
int dashPos1=原始的BN.indexOf(“x”);
int dashPos2=原始的bn.indexOf(“x”,dashPos1+1);
String reducedISBN=originalISBN.substring(0,dashPos1)+
原始BN.子字符串(dashPos1+1,dashPos2)+
原始bn.子串(dashPos2+1,11);
返回还原SBN;
}
私有静态int getCheckDigit(字符串缩减IDisBNParameter){
int-total=0;
最后的字符串数字=“0123456789X”;

对于(int i=0,j=10;i您试图在方法签名中传递char值
'x'
,该值的语法无效:

private static String getReducedISBN(char 'x') {
您的意思是使用
x
作为变量名吗

private static String getReducedISBN(char x) {
这里也一样,因为我假设您正在尝试查找作为分隔符而不是字符串
“x”
传递的任何内容的索引:


'x'
不是一个标识符(变量或任何东西),它是一个文字字符。同样,“x”是一个文字字符串。用
字符x
替换
字符x'
,用
x.toString()
替换
字符x'
,以获得所需的内容。

hmm,错误消息是“预期的”,而不仅仅是“预期的”…注意:
indexOf
将使用
字符串而不是
char
。是的,这样做了。非常感谢您,BoltClock。但是,现在,我遇到了一个“找不到类定义”运行时错误。不再有任何编译错误。我正在使用NetBeans IDE。它说找不到哪个类的定义?@user268396:很好的调用。但是有必要调用
toString()
吗?我的Java.Java.lang.NoClassDefFoundError:checkdigit7/Main已经生锈了
int dashPos1 = originalISBN.indexOf(x);
int dashPos2 = originalISBN.indexOf(x, dashPos1 + 1);