为什么不打印这个单词的最后一个字符?

时间:2013-09-23 19:50:56

标签: java char string-length

我正在使用java。我正在尝试拔出8个字符或更少字符的最后一个字母。然后在

之后拔出每个角色
    lengthOfWord = word.length();
    lc = word.charAt(lengthOfWord -1);

    if (lengthOfWord == 1)
        System.out.println(lc);

当我尝试使用带有一个字符的单词时,它会显示“字符串索引超出范围:-1”,当我尝试使用两个字符的单词时,表示构建成功,但不打印任何内容。 / p>

2 个答案:

答案 0 :(得分:1)

lengthOfWord超越了word的范围。使用:

lc = word.charAt(lengthOfWord - 1);

请记住.length()返回对象的字符数,但对象的索引从0开始,到length()-1结束。

<强>更新 试试这个来检查单词中的所有字符:

for (int i = 0; i < word.length(); i++) {
  System.out.println("Char " + i + ": " + word.charAt(i));
}

答案 1 :(得分:0)

lengthOfWord基于0,所以你可能想尝试lc = word.charAt(lengthOfWord - 1);