接受一个char作为参数但返回一个int?

时间:2017-02-03 02:07:56

标签: java

public class BookLab2
{
    public static void main (String [] args)
    {
        BLab2Cons alph;
        char current;
        int index;
        Scanner scan = new Scanner(System.in);
        alph = new BLab2Cons(26);
        String answer;
        System.out.println("Give me a sentence that ends with a period.");
        answer = scan.nextLine();
        System.out.println(alph.length);
        for (int x = 0; x < answer.length(); x++)
        {
            current = answer.charAt(x);
            index = answer.convertIndex(x); //This is where I am having problems.
        }
    }
}


public class BLab2Cons 
{
    int index;
    int alph[];
    char test;
    public int length;
    public BLab2Cons(int size)
    {
        alph = new int[size];
        length = alph.length;
    }
    public int convertIndex(char x) //The method that is not working.
    {
        index = (int)x - (int)'a';
        return index;
    }
}

这是我创建方法的类,如果你测试它,convertIndex不起作用。我现在已经尝试了将近一个小时试图让它接受一个char作为参数但返回一个int。我不是一个非常先进的编码器,因此保持简单是非常有必要的。我试图将char转换为int,这似乎有效,但是当我需要在我的主代码中实际使用该方法时,似乎我总是必须使用字符串作为参数而不是char。

编辑:这是我得到的错误:http://prntscr.com/e3tqsw

4 个答案:

答案 0 :(得分:2)

问题是您没有正确调用该方法。目前,你有

index = answer.convertIndex(x);

convertIndexBLab2Cons类中定义的实例方法。因此,该方法需要类BLab2Cons的实例才能调用它。此外,您正在传递x int,但您的方法被定义为采用char参数。因此,简单的解决方法是使用alph调用方法,如此,

index = alph.convertIndex(current);

答案 1 :(得分:1)

试试这个:

 index = alph.convertIndex(current);

答案 2 :(得分:0)

current传递给convertIndex()

答案 3 :(得分:0)

根据this,我认为您可能希望将'x'替换为'current'