changed CharSequence lastIndexOf to handle supplementary characters

This commit is contained in:
MarkDacek 2017-03-04 21:23:00 -05:00
parent 6597c19652
commit cde4c52903
1 changed files with 16 additions and 3 deletions

View File

@ -124,9 +124,22 @@ static int lastIndexOf(final CharSequence cs, final int searchChar, int start) {
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;