RFR: JDK-8302323 Add repeat methods to StringBuilder/StringBuffer [v8]

Claes Redestad redestad at openjdk.org
Tue Mar 14 10:25:19 UTC 2023


On Fri, 3 Mar 2023 19:04:22 GMT, Jim Laskey <jlaskey at openjdk.org> wrote:

>> Add the ability to repeatedly append char and CharSequence data to StringBuilder/StringBuffer.
>
> Jim Laskey has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Expand test for StringBuffer and illegal code points

It seems reasonable to consider analogous `insert` methods. Perhaps a more consistent naming scheme would be `appendRepeated` and `insertRepeated`? (The precedent for `repeat` in `String::repeat` is there, but is kind of weak since it's clear in that case that we're not mutating internal state)

src/java.base/share/classes/java/lang/AbstractStringBuilder.java line 1832:

> 1830:         if (isLatin1 && StringLatin1.canEncode(c)) {
> 1831:             byte b = (byte)c;
> 1832:             for (int index = this.count; index < limit; index++) {

This loop could even be replaced with `Arrays.fill(value, this.count, limit, b)` - a plausible candidate for intrinsification?  There's an added range check in that method, however, but that shouldn't be too hard for the JIT to eliminate.

-------------

PR: https://git.openjdk.org/jdk/pull/12728


More information about the core-libs-dev mailing list