Java:字符串索引超出范围:-4

Java:字符串索引超出范围:-4,java,spring,spring-boot,spring-jdbc,Java,Spring,Spring Boot,Spring Jdbc,我收到一个错误“字符串索引超出范围:-4” 下面是我的密码 if (WHEREClause.substring((WHEREClause.length() - 4)) == "AND ") { WHEREClause = WHEREClause.substring(0, (WHEREClause.length() - 4)); } Where子句的值为=>“arSLC_CODE=13和” 如果我显示代码中的“WHEREClause.substring((WHEREClause.leng

我收到一个错误“字符串索引超出范围:-4” 下面是我的密码

if (WHEREClause.substring((WHEREClause.length() - 4)) == "AND ") {
    WHEREClause = WHEREClause.substring(0, (WHEREClause.length() - 4)); }
Where子句的值为=>“arSLC_CODE=13和”

如果我显示代码中的“WHEREClause.substring((WHEREClause.length()-4)) 我得到这个=>“和”

看来 如果(“和”=“和”)
{
…我在这里进去
}


但是我得到了一个错误“字符串索引超出范围:-4”,无法进入if语句。比较字符串时,请使用
.equals
而不是
=
,以帮助您了解这一点
=
通常仅在比较引用或内存时使用,而
.equals
用于查看它们是否包含相同的内容首先,Alex Tănăsescu是对的,请使用
.equals
比较
字符串
内容

其次,它看起来像
WHEREClause
属性可能包含一个空字符串。是否确定异常在
if
块内引发?我确信它出现在这段代码的早期:

WHEREClause.substring((WHEREClause.length() - 4))

只需检查
字符串是否为空

不要使用==运算符比较字符串。Java不是JavaScription你知道索引在Java中是如何工作的吗?不要将字符串与
==
进行比较;使用
.equals
方法。我使用什么?我是否使用contains(char)?否,使用equals。但是WhereClause.length()似乎是0。你查过Where子句的值了吗?