当前位置: 首页 > 知识库问答 >
问题:

java getText()中的StringIndexOutOfBoundsException[重复]

赫连正初
2023-03-14

我将把字母表与您输入的字符串进行比较
当输入字符串与字母字符串匹配时,我将按照以下步骤进行操作
我不明白为什么会发生StringIndexOutOfBoundsException

问题出在哪里?

    b1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            int vk_1 = t1.getText().length();

            Set chk = new LinkedHashSet(); 

            for(i=0;i<vk_1;i++) {
                chk.add(t1.getText().toLowerCase().charAt(i)); 
            }

            String result = Arrays.toString(chk.toArray()).replace("[", "").replace(",", "").replace("]", "");

            t2.setText(result.replaceAll("\\p{Z}", "")); 

            if(t1.getText().equals("")) {
                t2.setText("NO KEY");
            }
        }
    });


b2.addActionListener(new ActionListener() {


        public void actionPerformed(ActionEvent e) {

            String s = t2.getText(); // aple
            char p[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
            char c[] = new char[s.length()];
             for(i=0;i<s.length();i++) {
                 for(j=1;j<=26;i++) {
                     if(p[j]==s.charAt(i)) {
                         continue;
                     }
                 }
                 System.out.println(p[j]);
             }
            if(t2.getText().equals("")) t3.setText("no key");
        }       
    });

共有1个答案

宗政燕七
2023-03-14

Java数组是基于零的,所以循环必须从索引0开始,一直运行到长度为1。

for(j=0;j<26;j++) {

更好的方法是使用p.length而不是固定值26:

for(j=0;j<p.length;j++) {

第二个问题是使用i而不是j

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

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

  • 问题内容: 在使方法在Java中正常工作时,我遇到了一些问题。在程序中,我创建了一个由许多不同长度的不同单词组成的数组。我正在使用的方法应该读取用户输入的字长,字母和位置,然后Java将打印出与这三个参数匹配的所有字(例如,如果用户键入了字长4,字母A和位置2,并打印出长度为4且在位置2包含字母A的单词)。 无论如何,我创建的方法如下所示: 对于某些输入,此方法很好用,但是对于其他输入,我会收到如

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

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

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