RFR: [15] JDK-8236030: Cleanup use of String.toCharArray
Hannes Wallnöfer
hannes.wallnoefer at oracle.com
Wed Dec 18 12:56:43 UTC 2019
Looks good.
I noticed that the removed methods would return the original string if they didn’t encounter a non-whitespace character, but I guess that wasn’t actually part of their intended behaviour.
Hannes
> Am 16.12.2019 um 23:47 schrieb Jonathan Gibbons <jonathan.gibbons at oracle.com>:
>
> Updated webrev based on Ivan's suggestion to use one of stripLeading(), stripTrailing(), or strip() instead of the old methods, which are now removed
>
> -- Jon
>
> http://cr.openjdk.java.net/~jjg/8236030/webrev.01/
>
>
>
> On 12/16/2019 01:33 PM, Jonathan Gibbons wrote:
>> Ivan,
>>
>> Great suggestion, and sets up the possibility to use strip() when both leading and trailing whitespace should be removed.
>>
>> The only slight change in semantics would be that these methods work in terms of code-points, not characters, and javadoc has not (yet?) been adapted to use code-points throughout.
>>
>> -- Jon
>>
>>
>> On 12/16/2019 01:23 PM, Ivan Gerasimov wrote:
>>> Hello!
>>>
>>> Can String.stripLeading()/stripTrailing() methods be used instead, or is there a reason to avoid them?
>>>
>>> With kind regards,
>>>
>>> Ivan
>>>
>>>
>>> On 12/16/19 1:10 PM, Jonathan Gibbons wrote:
>>>> Please review a tiny change to eliminate a string copy into a temporary character buffer when removing leading or trailing whitespace from a string.
>>>>
>>>> The affected methods are called within the main code to translate doc comments to HTML. This is noreg-cleanup/no-reg-trivial, so no new additional tests.
>>>>
>>>> Webrev below, but the patch is also included here:
>>>>
>>>> --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Mon Dec 16 15:33:03 2019 -0500
>>>> +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Mon Dec 16 13:07:18 2019 -0800
>>>> @@ -1604,22 +1604,19 @@
>>>> }
>>>>
>>>> private String removeTrailingWhitespace(String text) {
>>>> - char[] buf = text.toCharArray();
>>>> - for (int i = buf.length - 1; i > 0 ; i--) {
>>>> - if (!Character.isWhitespace(buf[i]))
>>>> - return text.substring(0, i + 1);
>>>> + int i = text.length() - 1;
>>>> + while (i >= 0 && Character.isWhitespace(text.charAt(i))) {
>>>> + i--;
>>>> }
>>>> - return text;
>>>> + return i == text.length() - 1 ? text : text.substring(0, i + 1);
>>>> }
>>>>
>>>> private String removeLeadingWhitespace(String text) {
>>>> - char[] buf = text.toCharArray();
>>>> - for (int i = 0; i < buf.length; i++) {
>>>> - if (!Character.isWhitespace(buf[i])) {
>>>> - return text.substring(i);
>>>> - }
>>>> + int i = 0;
>>>> + while (i < text.length() && Character.isWhitespace(text.charAt(i))) {
>>>> + i++;
>>>> }
>>>> - return text;
>>>> + return i == 0 ? text : text.substring(i);
>>>> }
>>>>
>>>> /**
>>>>
>>>>
>>>> -- Jon
>>>>
>>>>
>>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8236030
>>>> Webrev: http://cr.openjdk.java.net/~jjg/8236030/webrev/
>>>>
>>
>
More information about the javadoc-dev
mailing list