我试图编写一个接收字符串和数组并打印出以下内容的方法...
--- 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]);
似乎无法找出原因。非常感谢任何和所有帮助。
答案 0 :(得分:2)
您假设您的输入将全部显示,但不是,所以当您到达'b'
中的"Abe"
时,您会遇到麻烦。 'b' - 'A'
生效98 - 65
(33
),(int)'b'
为98且(int)'A'
为65. 33
超出0
范围{1}} .. 25
(包含)数组。
在进行减法之前使字符大写。检查您的输入可能是一个好主意,例如,不要假设用户不会输入类似'$'
的内容(这会为您提供索引{{ 1}})。 : - )