-1

我正在做一个作业,我必须做几个简单的字符串操作。我想我已经弄清楚了最后一个,它本身就可以工作,但是当我将它与其他字符串操作放在一起时它不起作用,给了我一个 arrayoutofbounds 异常错误。有什么建议吗?这是我制作的小代码

  public static void main (Strings[] args) {
    Scanner sc = new Scanner(System.in);
    String theSentence = sc.nextLine();
    String [] theWords = theSentence.split(" ");
    Arrays.sort(theWords);
    System.out.println(theWords[1]);
    System.out.println(Arrays.toString(theWords));
}

当它与其余代码放在一起时,即使它本身可以工作,这也不起作用。作为参考,这段代码应该包含一个小句子,并按字典顺序给我最小的单词。例如:输入:"4 WHAT WAIT IS THIS"输出将是"IS"

4

2 回答 2

7

代码假设它theWords总是至少有两个元素。如果用户提供的句子没有任何空格,theWords则永远不会在位置 1 获得元素,因此程序将崩溃System.out.println(theWords[1]);

于 2013-09-03T19:24:56.067 回答
0

在 Java 中,数组从零开始索引,其中第 0 个元素是第一个元素。正如马克所说,您假设在这种情况下总是输入两个单词。在尝试访问元素之前,您应该检查 theWords 的长度。

于 2013-09-03T19:29:46.963 回答