我正在尝试编写一个方法,它接受一个字符串和一个数组并打印出以下内容。。。
--- 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]);
似乎不知道为什么。非常感谢您的帮助。
1条答案
按热度按时间sdnqo3pr1#
你假设你的输入将在所有的大写字母,但它不是,所以当你到达
'b'
在"Abe"
,你遇到麻烦了。'b' - 'A'
已生效98 - 65
(33
),作为(int)'b'
是98和(int)'A'
是65岁。33
超出了0
..25
(含)数组。在进行减法运算之前,将字符设为大写。检查您的输入可能也是一个好主意,例如,不要假设用户不会键入
'$'
(这将为您提供索引-29
). :-)