Java方法与Chars混淆

时间:2014-03-11 17:53:48

标签: java for-loop methods indexing char

我试图编写一个接收字符串和数组并打印出以下内容的方法...

--- Name is "Abe"---
Adorable
Beautiful
Elegant

--- Name is "bob"---
Beautiful
Outstanding
Beautiful

我的代码......

public static void printReport(String name, String[] sortedArray)
{
    System.out.println(name);
    char c = '\0';
    for (int i = 0; i <name.length()-1;i++)
    {
        c = name.charAt(i);
        int index = c-'A';
        System.out.println(sortedArray[index]);
    }
}
}

其中name是...... well name,sortedArray是按字母顺序排列的26个形容词的数组。我试图使用字符的数值来打印出正确的形容词。我在

上收到错误
System.out.println(sortedArray[index]);

似乎无法找出原因。非常感谢任何和所有帮助。

1 个答案:

答案 0 :(得分:2)

您假设您的输入将全部显示,但不是,所以当您到达'b'中的"Abe"时,您会遇到麻烦。 'b' - 'A'生效98 - 6533),(int)'b'为98且(int)'A'为65. 33超出0范围{1}} .. 25(包含)数组。

在进行减法之前使字符大写。检查您的输入可能是一个好主意,例如,不要假设用户不会输入类似'$'的内容(这会为您提供索引{{ 1}})。 : - )