* StringUtils.ordinalIndexOf(null, *, *) = -1
* StringUtils.ordinalIndexOf(*, null, *) = -1
* StringUtils.ordinalIndexOf("", "", *) = 0
* StringUtils.ordinalIndexOf("aabaabaa", "a", 1) = 0
* StringUtils.ordinalIndexOf("aabaabaa", "a", 2) = 1
* StringUtils.ordinalIndexOf("aabaabaa", "b", 1) = 2
* StringUtils.ordinalIndexOf("aabaabaa", "b", 2) = 5
* StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
* StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
* StringUtils.ordinalIndexOf("aabaabaa", "", 1) = 0
* StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0
这是方法中给的代码演示,执行后没有问题。
* StringUtils.ordinalIndexOf("aabaabaa", "aa", 1) = 1
这个代码演示时,发生问题,结果应该是:0 的,可是执行后结果却是:3 。
在StringUtils的类中有一个方法:ordinalIndexOf,这是一个私有的方法
将1028行代码:index = CharSequenceUtils.indexOf(str, searchStr, index + searchStr.length());
改成:index = CharSequenceUtils.indexOf(str, searchStr, index + searchStr.length() - 1);
结果就正确了。