RFR: [15] JDK-8236030: Cleanup use of String.toCharArray

Jonathan Gibbons jonathan.gibbons at oracle.com
Mon Dec 16 21:10:05 UTC 2019


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