Java susbstring在字符串验证后中断

Java susbstring在字符串验证后中断,java,swing,Java,Swing,我到处寻找这个问题的答案,但运气不好 我有这个字符串: String letter = JOptionPane.showInputDialog("Please insert the letter"); 这是一种验证只有特定字母才能进入的方法: while (!letter.toLowerCase().matches("a|b|c|d|e|f|g|h|i|j|k")) { JOptionPane.showMessageDialog(null, "Pleas

我到处寻找这个问题的答案,但运气不好

我有这个字符串:

String letter = JOptionPane.showInputDialog("Please insert the letter");
这是一种验证只有特定字母才能进入的方法:

        while (!letter.toLowerCase().matches("a|b|c|d|e|f|g|h|i|j|k")) {
            JOptionPane.showMessageDialog(null, "Please insert an appropriate letter");
            letter = JOptionPane.showInputDialog("Please insert the letter: ");       
        }
当我尝试得到这样的子字符串时:

   String letterString = letter.substring(0, 1);

   System.out.println(letterString);
即使输入了正确的值,也不会打印任何内容。Eclipse进入调试模式,JOptionPane消息框关闭


我做错了什么?

从这个运行的示例中可以看出,粘贴的代码工作得非常好。错误在别的地方

public class StringValidation {
    public static void main(String[] args) {
        String letter = JOptionPane.showInputDialog("Please insert the letter");
        while (!letter.toLowerCase().matches("a|b|c|d|e|f|g|h|i|j|k")) {
            JOptionPane.showMessageDialog(null, "Please insert an appropriate letter");
            letter = JOptionPane.showInputDialog("Please insert the letter: ");
        }
        String letterString = letter.substring(0, 1);
        System.out.println(letterString);
    }
}

1)
子字符串(0)
无效;子字符串是整个字符串。2) 我不知道在哪里声明或分配了
letterGrade
。肯定有堆栈跟踪。你能把它贴出来让我们看看吗?你正在“替换”字母串并打印字母等级…所以…你知道…@dierre啊,我粘贴时的错误。在代码中,它实际上是字母字符串。@tman道歉,粘贴时出错。实际代码现在更新了。是的,你完全正确。。。当我删除验证时,它工作正常,所以我推断它很可能是表单。非常感谢您的帮助和时间,我将返回并排除一些其他可能性。