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
答案 0 :(得分:2)
问题是您没有正确调用该方法。目前,你有
index = answer.convertIndex(x);
但convertIndex
是BLab2Cons
类中定义的实例方法。因此,该方法需要类BLab2Cons
的实例才能调用它。此外,您正在传递x
int
,但您的方法被定义为采用char
参数。因此,简单的解决方法是使用alph
调用方法,如此,
index = alph.convertIndex(current);
答案 1 :(得分:1)
试试这个:
index = alph.convertIndex(current);
答案 2 :(得分:0)
将current
传递给convertIndex()
答案 3 :(得分:0)
根据this,我认为您可能希望将'x'替换为'current'