diff --git a/hutool-core/src/main/java/cn/hutool/core/text/finder/TextFinder.java b/hutool-core/src/main/java/cn/hutool/core/text/finder/TextFinder.java index 5c0088ec9..9b6f3d366 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/finder/TextFinder.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/finder/TextFinder.java @@ -48,9 +48,13 @@ public abstract class TextFinder implements Finder, Serializable { * @return 有效结束位置 */ protected int getValidEndIndex(boolean negative) { + if(negative && -1 == endIndex){ + // 反向查找模式下,-1表示0前面的位置,即字符串反向末尾的位置 + return -1; + } final int limit; if (endIndex < 0) { - limit = negative ? -1 : text.length(); + limit = endIndex + text.length(); } else { limit = Math.min(endIndex, text.length()); }