如何获得在另一个字符串中找到的字符串的真实结束索引

时间:2016-10-03 14:32:11

标签: java apache-stringutils

我试图在另一个字符串中找到一系列字符。 使用Java

diffStart = String.valueOf(StringUtils.indexOf(strInputString02, strOutputDiff));
diffEnd = String.valueOf(StringUtils.lastIndexOf(strInputString02, strOutputDiff));

其中

strInputString02 = "test test2 Test3"
strOutputDiff = "test2"

我想要

  • diffStart = 5
  • diffEnd = 10

但我得到了

  • diffStart = 5
  • diffEnd = 5

基于 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

谢谢 雷迪

1 个答案:

答案 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检查,以防子串完全不存在)