我试图编写一个接收字符串和数组的方法,然后打印出以下内容.
--- 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]);
}
}
}名字在哪里..。sortedArray是一个按字母顺序排列的26个形容词组成的数组。我试图用字符的数值来打印出正确的形容词。我发现了一个错误
System.out.println(sortedArray[index]);似乎不知道为什么。所有的帮助都是非常感谢的。
发布于 2014-03-11 17:56:22
假设您的输入是大写的,但它不是,所以当您到达'b' in "Abe"时,就会遇到麻烦。'b' - 'A'实际上是98 - 65 (33),(int)'b'是98,(int)'A'是65。33超出了0..25 (包含)数组的范围。
在进行减法之前,使字符大写。检查您的输入也可能是个好主意,例如,不要假设用户不会键入类似'$'的内容(这将给您提供索引-29)。:-)
https://stackoverflow.com/questions/22332730
复制相似问题