当前位置: 首页 > 面试题库 >

StringIndexOutOfBoundsException

廖琪
2023-03-14
问题内容

在使方法在Java中正常工作时,我遇到了一些问题。在程序中,我创建了一个由许多不同长度的不同单词组成的数组。我正在使用的方法应该读取用户输入的字长,字母和位置,然后Java将打印出与这三个参数匹配的所有字(例如,如果用户键入了字长4,字母A和位置2,并打印出长度为4且在位置2包含字母A的单词)。

无论如何,我创建的方法如下所示:

public static void inputMethod(int length, char letter, int position){
    for (int index = 0; index < wordTable.length; index++) {
        if (length == wordTable[index].length() && letter == wordTable[index].charAt(position) )
            System.out.println(wordTable[index]); }

对于某些输入,此方法很好用,但是对于其他输入,我会收到如下错误消息:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
at java.lang.String.charAt(Unknown Source)
at Wordarray.inputMethod(Wordarray.java:153)
at Wordarray.main(Wordarray.java:61)

如果有人可以向我解释如何解决此问题,我将不胜感激!就像我说的,我仅在某些输入时才收到此消息。对于其他输入,程序按预期运行。


问题答案:

如果已更换

for (int index = 0; index < wordTable.length; index++) {

for (int index = 0; index < length; index++) {

那很可能不是您真正想要的。

更好的方法是这样的:

public static void inputMethod(int length, char letter, int position) {
  // check if input is valid
  if(position < length)
    for (int index = 0; index < wordTable.length; index++) {
      if (length == wordTable[index].length() && letter == wordTable[index].charAt(position) )
            System.out.println(wordTable[index]);
}


 类似资料:
  • 问题内容: 当用2.4.6最小化yui时,出现此问题: java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:232 当通过我的IDE启动时,它可以工作,但是当部署到jboss时,它就不能工作。这个地方:http: //yuilibrary.com/forum/viewtopic.php?p=20086对该问题进行了一些讨论。 显然,问题出在org

  • 问题内容: 我正在编写一个打开文本文件并检查注释的程序。然后,它解析注释以检查某些单词。 错误im出现在以下while循环中,该循环检查是否当前行以空格或除’/’以外的其他字符开头,如果那里存在非反斜杠字符,则while循环移至下一行并检查再次。一旦while循环满足其要求并中断程序崩溃,我将收到以下输出错误。 这是有问题的代码示例 谢谢你的帮助。我确定这是一个简单的错误,但我只是看不到它。 问题

  • 很抱歉,如果问题已经被问到了,我只是得到一个抛出,尽管我的程序在第一次尝试时运行正常。我尝试更改子字符串的索引,但也不起作用。以下是抛出的完整异常: 下面是台词:

  • 首先,这里是我的代码中有问题的部分;这些都是非常基本的类 TestClass: 所以,我认为问题出在客舱。这是我第一次在class things(我指的是if(checkPw(password)==true)部分)中使用该类。在测试类中,它看起来非常清楚而且我从来没有想过会出现这个错误。我该如何避免这条信息呢? 完全错误: Java结果:1

  • 我正在编写一个打开文本文件并检查注释的程序。然后它解析注释以检查某些单词。 im出现的错误是以下while循环检查当前行是否以空白或“/”以外的任何字符开头(如果存在非反斜杠字符),然后while循环移到下一行并再次检查。一旦while循环满足其要求并爆发,程序就会崩溃,我会得到以下输出错误。 下面是有问题的代码示例 谢谢你的帮助。我肯定这是一个简单的错误,但我就是没看到。

  • 然后,我创建了注释代码。 结果 原因:java.lang.StringIndexOutOfBoundsException:长度=0;指数=-6 说真的,我和这个代码斗争了7小时30分钟。