RFR: 8364007: Add no-argument codePointCount method to CharSequence and String [v3]
Tatsunori Uchino
duke at openjdk.org
Sun Aug 3 13:37:54 UTC 2025
On Sat, 26 Jul 2025 10:10:40 GMT, Tatsunori Uchino <duke at openjdk.org> wrote:
>> Adds `codePointCount()` overloads to `String`, `Character`, `(Abstract)StringBuilder`, and `StringBuffer` to make it possible to conveniently retrieve the length of a string as code points without extra boundary checks.
>>
>>
>> if (superTremendouslyLongExpressionYieldingAString().codePointCount() > limit) {
>> throw new Exception("exceeding length");
>> }
>>
>>
>> Is a CSR required to this change?
>
> Tatsunori Uchino has updated the pull request incrementally with four additional commits since the last revision:
>
> - Update `@bug` in correct file
> - Add default implementation on codePointCount in CharSequence
> - Update `@bug` entries in test class doc comments
> - Discard changes on code whose form is not `str.codePointCount(0, str.length())`
Its author may have prioritized the versatility of the APIs.
> `codePointCount(0, length())`
This workaround is only effective if the instance expression is sufficiently short or can afford to be stored to a new temporary variable once. It can be a pain in the neck that you have to write the expression even twice to get the number of code points in the entire string instance.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/26461#issuecomment-3148429115
More information about the compiler-dev
mailing list