【问题标题】:Java Method Confusion with CharsJava 方法与字符混淆
【发布时间】:2014-04-15 11:28:51
【问题描述】:

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

--- 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 是...井名,而 sortedArray 是按字母顺序排列的 26 个形容词的数组。我正在尝试使用 chars 的数值来打印出正确的形容词。我在

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

而且似乎无法弄清楚原因。非常感谢任何和所有帮助。

【问题讨论】:

  • 您可能想尝试的是使用映射对象,其中字符映射到字符串,这样您就不必担心基于字符的排序和创建索引。另外,您看到了什么错误?
  • 错误是什么? ArrayIndexOutOfBoundException??

标签: java for-loop methods indexing char


【解决方案1】:

您假设您的输入将全部大写,但事实并非如此,因此当您到达"Abe" 中的'b' 时,您会遇到麻烦。 'b' - 'A' 有效 98 - 65 (33),因为 (int)'b' 是 98,(int)'A' 是 65。33 超出了 0..25(包括)数组的范围。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    相关资源
    最近更新 更多