Java charAt() 字符串索引超出范围 : 0

标签 java

我有这段代码:

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/

相关文章:

java - 通过 http 服务 GAE 应用程序

java - 检查二叉树是否具有相同的结构

java - 10 × 10 乘法表,但仅显示大于用户输入值的条目

java - 如何在 AJAX 更新时更新行样式?

java - 递归删除目录

java - 在jtable中计算%,总计

java - 如何终止包装函数的线程? [复制]

java - 为什么我的代码在输入负值时无法执行?

java - 具有三元表达式的后缀增量运算符显示意外行为

java - 日期不解析月份