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;

Reply via email to