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

问题描述:

我正在使用java。我正在尝试取出8个字符或更少字的最后一个字母。然后拉出每个字符后为什么不打印该单词的最后一个字符?

lengthOfWord = word.length(); 
    lc = word.charAt(lengthOfWord -1); 

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

当我试图用一个词一个字,它说:“字符串索引超出范围:-1”,当我尝试使用的两个字符一句话,它说建成功,但不打印任何东西。

+0

请还包括了什么事。我怀疑它没有默默地失败,并且错误信息包含有关该问题的提示... –

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

lengthOfWord已经过了word的界限。用途:

lc = word.charAt(lengthOfWord - 1); 

记住。长度()返回一个对象的字符数,而是一个对象的索引开始于0length()-1结束。

UPDATE 试试这个检查所有字符的字:

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

嗯,我试过了,我不再发生错误,但是我的程序没有打印任何东西。它只是说构建是成功的。我编辑了我的问题以显示我所尝试的内容。 –

+0

“word”在它的结尾有可能是空白字符吗? – LeMazing

+0

尝试更新我的答案。如果您在任何地方都不应该有空白字符,那么代码中的其他地方会出现问题。如果打印输出为5个字符,但单词中只有4个字符,则会出现问题。 – LeMazing