【问题标题】:StringIndexOutOfBoundsException in java getText() [duplicate]java getText()中的StringIndexOutOfBoundsException [重复]
【发布时间】:2017-05-31 09:23:46
【问题描述】:

我会将字母表与您输入的字符串进行比较。
当输入的字符串与字母字符串匹配时,我会进行如下操作。
我不知道为什么会发生 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");
        }       
    });

【问题讨论】:

  • 你的代码可以编译吗?
  • @KrishnaKuntala 是的,我只上传了一些源代码。
  • 您在第二个 for 循环中增加了错误的变量(i 而不是 j)
  • @DavisMolinari 好的。我检查了这个问题。但仍然无法解决。

标签: java exception gettext charat


【解决方案1】:

Java 数组是从零开始的,因此您的循环必须从索引 0 开始并一直运行到长度为 1。

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

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

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

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

【讨论】:

  • 我已确认您的更新答案。但是,问题并没有解决。我还附上了我输入的“t2”文本字段源代码。请检查它在哪里。
  • @mina_star 请不要在回答后更改问题。添加仅标记为更新的新信息。
  • 如果循环离开,不要再使用 j,因为它会在末尾增加,而 j=p.length 会导致这个错误。
  • 那么,我该如何改变呢?
  • @mina_star 该行的输出应该是什么?
猜你喜欢
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 2020-08-18
  • 1970-01-01
相关资源
最近更新 更多