RFR: JDK-8032012, , String.toLowerCase/toUpperCase performance improvement
Xueming Shen
xueming.shen at oracle.com
Wed Feb 5 20:06:35 UTC 2014
Hi Paul,
http://cr.openjdk.java.net/~sherman/8032012/webrev
webrev has been updated accordingly.
Thanks!
-Sherman
On 02/05/2014 10:43 AM, Xueming Shen wrote:
> On 02/05/2014 11:09 AM, Paul Sandoz wrote:
>> On Feb 5, 2014, at 6:58 PM, Xueming Shen<xueming.shen at oracle.com> wrote:
>>
>>> Hi,
>>>
>>> Let's try to wrap it up, otherwise I may drop the ball somewhere :-)
>>>
>>> On 01/22/2014 07:20 AM, Paul Sandoz wrote:
>>>>
>>>> if (lang == "tr" || lang == "az" || lang == "lt") {
>>>> // local dependent
>>>> return toLowerCaseEx(result, firstUpper, locale, true);
>>>> }
>>>> // otherwise false is passed to subsequent calls to toLowerCaseEx
>>>>
>>>> ?
>>>>
>>> toLowerCaseEx will also be invoked later (in your another suggestion next), which
>>> needs a "localeDependent".
>>>
>> But is not the second call to toLowerCaseEx always invoked with a value of false?
>>
>> 2574 String lang = locale.getLanguage();
>> 2575 final boolean localeDependent = (lang == "tr" || lang == "az" || lang == "lt");
>> 2576 if (localeDependent) {
>> 2577 return toLowerCaseEx(result, firstUpper, locale, localeDependent); //<-- localeDependent is true
>> 2578 }
>> 2579 for (int i = firstUpper; i< len; i++) {
>> 2580 int c = (int)value[i];
>> 2581 if (c>= Character.MIN_HIGH_SURROGATE&& c<= Character.MAX_HIGH_SURROGATE ||
>> 2582 c == '\u03A3' || // GREEK CAPITAL LETTER SIGMA
>> 2583 (c = Character.toLowerCase(c))>= Character.MIN_SUPPLEMENTARY_CODE_POINT) {
>> 2584 return toLowerCaseEx(result, i, locale, localeDependent); //<-- localDependent is false
>> 2585 }
>> 2586 result[i] = (char)c;
>> 2587 }
>> 2588 return new String(result, true);
>>
>>
>
> You are absolutely right :-) I will update as suggested.
>
> -sherman
More information about the core-libs-dev
mailing list