我有这段代码:
private void submitPstart() {
if (tStock.getText().charAt(0)>='A' && tStock.getText().charAt(0)<='Z'){
}else {
errorBox ("Uppercase A-Z");
}
tStock.setText("");
tStock.setFocus();
}
这是有效的,但是当我尝试不在文本框上放置任何内容并按下 OK 按钮时,它崩溃了。它说:
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
它指出了这部分:if (tStock.getText().charAt(0)>='A' && tStock.getText().charAt(0)<='Z')
感谢任何帮助。谢谢
最佳答案
您需要检查 getText()
是否返回长度为 0(即空)的字符串。
如果是,则不要尝试拉出第一个字符! (通过 charAt()
)
请注意,您对 length()
的注释检查应该发生在现有字符检查之前。
您可能还想检查返回的空字符串,这取决于您的框架/解决方案等。注意 Apache Commons StringUtils.isEmpty()方法,它简洁地执行此检查。
关于Java charAt() 字符串索引超出范围 : 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13118732/