harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Magnusson Jr." <g...@pobox.com>
Subject Re: [classlib][performance]The case mapping operation could be simplify
Date Wed, 17 Jan 2007 13:03:30 GMT
I'd also probably name the method something like

  toASCIILowerCase()

or something so people grok it a little better.

geir

On Jan 16, 2007, at 12:07 PM, Tony Wu wrote:

> Thanks Paulex.
> I'll try to do this one by one if no one objects.
>
> On 1/15/07, Yang Paulex <paulex.yang@gmail.com> wrote:
>> 2007/1/15, Tony Wu <wuyuehao@gmail.com>:
>> >
>> > I found some String.toLower(Upper)Case are invoked in some place  
>> which
>> > is not necessay at all.
>> >
>> > As you know, String.toLower(Upper)Case will perform locale- 
>> sensitive
>> > mappings, context-sensitive mappings, and 1:M character  
>> mappings. It
>> > is expensive I think.
>>
>>
>> I think so, it needs  to load  locale data .
>>
>> In almost all of the conditions, following
>> > method[1] is good enough.
>> >
>> >
>> > For example, there is following line in java.net.URL,
>> > protocol = protocol.toLowerCase();
>> > But according to RFC 2396, the scheme is defined by "alpha * 
>> ( alpha |
>> > digit | "+" | "-" | "." )"
>> >
>> > And another example is the Locale,
>> > countryCode = country.toUpperCase();
>> > But country code is defined as ASCII character only.
>> >
>> > So I'd like to add methods like [1] to org.apache.harmony.luni.util
>> > and refactor every possible place to use it. please correct me  
>> if I am
>> > wrong, any concerns are welcome.
>> >
>> > [1]
>> > public static String toLowerCase(String s){
>> >         StringBuffer buffer = new StringBuffer();
>> >         for (int i = 0; i < s.length(); i++) {
>> >             char c = s.charAt(i);
>> >             if ('A' <= c && c <= 'Z') {
>> >                 buffer.append((char) (c + ('a' - 'A')));
>> >             }else{
>> >                 buffer.append(c);
>> >             }
>> >         }
>> >         return buffer.toString();
>> >     }
>>
>>
>> Sounds good, but please add clear comments to this method and the
>> invocations why String.toLowerCase is not preferred in these cases.
>>
>> --
>> > Tony Wu
>> > China Software Development Lab, IBM
>> >
>>
>>
>>
>> --
>> Paulex Yang
>> China Software Development Labotary
>> IBM
>>
>>
>
>
> -- 
> Tony Wu
> China Software Development Lab, IBM


Mime
View raw message