Cleanup String.replace() occurences with single characters

Claes Redestad claes.redestad at oracle.com
Tue Jan 24 22:31:58 UTC 2017


Hi,

String::replace(CharSequence, CharSequence) does not use a regex, but
String::replace(char, char) can still be slightly more efficient,

As this is relatively new code that wasn't around when 8044461 was done
I'm sure we can get it cleaned up.

Thanks!

/Claes

On 2017-01-24 20:33, Christoph Dreis wrote:
> Hey,
>
>
>
> similar to https://bugs.openjdk.java.net/browse/JDK-8044461 I noticed two
> (newly introduced) places where we could avoid the regex overhead
>
> when replacing single chars.
>
>
>
> I'd be happy if this is sponsored.
>
>
>
> Cheers,
>
> Christoph
>
>
>
> =========== PATCH ============
>
> # User Christoph Dreis < <mailto:christoph.dreis at freenet.de>
> christoph.dreis at freenet.de>
>
> Cleanup String.replace() occurences with single characters
>
>
>
> diff --git
> a/src/java.base/share/classes/jdk/internal/loader/ResourceHelper.java
> b/src/java.base/share/classes/jdk/internal/loader/ResourceHelper.java
>
> --- a/src/java.base/share/classes/jdk/internal/loader/ResourceHelper.java
>
> +++ b/src/java.base/share/classes/jdk/internal/loader/ResourceHelper.java
>
> @@ -39,7 +39,7 @@
>
>      public static String getPackageName(String name) {
>
>          int index = name.lastIndexOf('/');
>
>          if (index != -1) {
>
> -            return name.substring(0, index).replace("/", ".");
>
> +            return name.substring(0, index).replace('/', '.');
>
>          } else {
>
>              return "";
>
>          }
>
> diff --git a/src/java.base/share/classes/jdk/internal/module/ModulePath.java
> b/src/java.base/share/classes/jdk/internal/module/ModulePath.java
>
> --- a/src/java.base/share/classes/jdk/internal/module/ModulePath.java
>
> +++ b/src/java.base/share/classes/jdk/internal/module/ModulePath.java
>
> @@ -495,7 +495,7 @@
>
>              Attributes attrs = man.getMainAttributes();
>
>              String mainClass = attrs.getValue(Attributes.Name.MAIN_CLASS);
>
>              if (mainClass != null)
>
> -                builder.mainClass(mainClass.replace("/", "."));
>
> +                builder.mainClass(mainClass.replace('/', '.'));
>
>          }
>
>
>
>          return builder.build();
>


More information about the core-libs-dev mailing list