Java:字符串索引超出范围:-4
我收到一个错误“字符串索引超出范围:-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
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子句的值了吗?