我试图在另一个字符串中找到一系列字符。 使用Java
diffStart = String.valueOf(StringUtils.indexOf(strInputString02, strOutputDiff));
diffEnd = String.valueOf(StringUtils.lastIndexOf(strInputString02, strOutputDiff));
其中
strInputString02 = "test test2 Test3"
strOutputDiff = "test2"
我想要
但我得到了
基于 http://commons.apache.org/proper/commons-lang/javadocs/api-release/index.html 它应该有效:
lastIndexOf
public static int lastIndexOf(CharSequence seq, CharSequence searchSeq)
查找CharSequence中的最后一个索引,处理null。这种方法 如果可能,使用String.lastIndexOf(String)。
StringUtils.lastIndexOf(" aabaabaa"," ab")= 4
谢谢 雷迪
答案 0 :(得分:1)
diffStart = String.valueOf(StringUtils.indexOf(strInputString02, strOutputDiff));
diffEnd = diffStart + strOutputDiff.length();
lastIndexOf找到匹配的字符串,但是它的最后一个实例。
E.g。 ab1 ab2 ab3 ab4
lastindexof(“ab”)找到第4个ab
indexof(“ab”)找到第一个ab(位置0)
但是,它们总是返回第一个字符的位置。
如果只有一个子串lastIndexof和indexof的实例将给出相同的索引。
(为了更多地增强你的例子,你可能还想做一些-1检查,以防子串完全不存在)