java getText()

时间:2017-05-31 09:23:46

标签: java exception gettext charat

我会将字母表与您输入的字符串进行比较。
当输入字符串与字母字符串匹配时,我将按照以下步骤进行操作 我无法弄清楚为什么会发生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 个答案:

答案 0 :(得分:2)

Java Arrays是基于零的,所以你的Loop必须从索引0开始并一直运行到length-1。

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

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

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

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