这是我查找否的代码。一串元音:

{
    String inyo=inpeo.getText().toLowerCase();
    System.out.println(inyo); // Just checking for an empty string

    int vowcount=0;
    for(int i=0;i<=inyo.length();i++)
 {
        char rol=inyo.charAt(i);
        if(rol=='o'||'u'==rol||rol=='a'||rol=='e'||rol=='i')
        {
            vowcount=vowcount+1;
            System.out.println(vowcount);
        }

        numout.setText(""+vowcount);

    }
}

现在,这里的输出没有问题-找到确切的编号。我想要的元音。但这给了我这个错误:
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
at java.lang.String.charAt(String.java:646)
at WordCheck.jButton2ActionPerformed(WordCheck.java:147)
// Extra errors removed as they're irrelevant to my issue

结果,除了关闭并重新启动程序外,无法重用该程序。当输出按要求输出时,为什么会出现此错误?我也没有任何空字符串。

最佳答案

for循环的最后一次迭代导致异常(当i == inyo.length()时)。只需将其替换为:

for(int i=0; i<inyo.length(); i++)

07-28 08:11