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