-4

我正在编写一个程序,该程序从从命令行重定向的文本文件中解码秘密消息。第一行是关键短语,第二行是索引关键短语的一组整数。我正在尝试使用该charAt()方法,但我不断收到没有此类元素异常错误消息。

public class Decoder 
{
    public static void main(String[] args) 
    {
        Scanner keyboard = new Scanner(System.in);

        while (keyboard.hasNext())
        {
           String phrase = keyboard.nextLine();
           int numbers = keyboard.nextInt();
           char results = phrase.charAt(numbers); 
               System.out.print(results); 
        }       
    }   
}
4

2 回答 2

1

请注意,当您这样做时int numbers = keyboard.nextInt();,它只读取int值(并跳过\n您之后按下的回车键) - 请参阅Scanner#nextInt.

因此,当您继续阅读时,keyboard.nextLine()您会收到\n.

您可以添加另一个keyboard.nextLine()以阅读跳过\nnextInt().

你得到的例外是因为你试图使用charAton \n

于 2013-10-08T07:19:01.243 回答
0

请记住charAt是零索引。

例如,如果您输入“test”,然后输入“3”,则输出应为“t”。

于 2013-10-08T07:15:31.650 回答