Repository: commons-lang Updated Branches: refs/heads/master 6700d58fd -> bf80b9e28
changed CharSequence lastIndexOf to handle supplementary characters Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/cde4c529 Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/cde4c529 Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/cde4c529 Branch: refs/heads/master Commit: cde4c529034e182a982fd842252ec410d213c34c Parents: 6597c19 Author: MarkDacek <mark.da...@richmond.edu> Authored: Sat Mar 4 21:23:00 2017 -0500 Committer: MarkDacek <mark.da...@richmond.edu> Committed: Sat Mar 4 21:23:00 2017 -0500 ---------------------------------------------------------------------- .../apache/commons/lang3/CharSequenceUtils.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-lang/blob/cde4c529/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java b/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java index a5112d9..007449e 100644 --- a/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java +++ b/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java @@ -124,9 +124,22 @@ public class CharSequenceUtils { if (start >= sz) { start = sz - 1; } - for (int i = start; i >= 0; --i) { - if (cs.charAt(i) == searchChar) { - return i; + if(searchChar < Character.MIN_SUPPLEMENTARY_CODE_POINT){ + for (int i = start; i >= 0; --i) { + if (cs.charAt(i) == searchChar) { + return i; + } + } + } + + if(searchChar <= Character.MAX_CODE_POINT){ + char[] chars = Character.toChars(searchChar); + for(int i = start; i>0; --i){ + if(cs.charAt(i) == chars[1]){ + if(cs.charAt(i-1) == chars[0]){ + return i; + } + } } } return NOT_FOUND;