java方法与chars混淆

bsxbgnwa  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(365)

我正在尝试编写一个方法,它接受一个字符串和一个数组并打印出以下内容。。。

--- 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]);
    }
}
}

名字是。。。好吧,Darray是按字母顺序排列的26个形容词。我试图用chars的数值来打印出正确的形容词。我的电脑出错了

System.out.println(sortedArray[index]);

似乎不知道为什么。非常感谢您的帮助。

sdnqo3pr

sdnqo3pr1#

你假设你的输入将在所有的大写字母,但它不是,所以当你到达 'b'"Abe" ,你遇到麻烦了。 'b' - 'A' 已生效 98 - 65 ( 33 ),作为 (int)'b' 是98和 (int)'A' 是65岁。 33 超出了 0 .. 25 (含)数组。
在进行减法运算之前,将字符设为大写。检查您的输入可能也是一个好主意,例如,不要假设用户不会键入 '$' (这将为您提供索引 -29 ). :-)

相关问题