RFR: 8251989: Hex formatting and parsing utility [v6]
Daniel Fuchs
dfuchs at openjdk.java.net
Tue Oct 20 18:20:26 UTC 2020
On Mon, 19 Oct 2020 22:52:31 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> java.util.HexFormat utility:
>>
>> - Format and parse hexadecimal strings, with parameters for delimiter, prefix, suffix and upper/lowercase
>> - Static factories and builder methods to create HexFormat copies with modified parameters.
>> - Consistent naming of methods for conversion of byte arrays to formatted strings and back: formatHex and parseHex
>> - Consistent naming of methods for conversion of primitive types: toHexDigits... and fromHexDigits...
>> - Prefix and suffixes now apply to each formatted value, not the string as a whole
>> - Using java.util.Appendable as a target for buffered conversions so output to Writers and PrintStreams
>> like System.out are supported in addition to StringBuilder. (IOExceptions are converted to unchecked exceptions)
>> - Immutable and thread safe, a "value-based" class
>>
>> See the [HexFormat
>> javadoc](http://cr.openjdk.java.net/~rriggs/8251989-hex-formatter/java.base/java/util/HexFormat.html) for details.
>> Review comments and suggestions welcome.
>
> Roger Riggs has updated the pull request incrementally with one additional commit since the last revision:
>
> Correct length of StringBuilder in formatHex;
> Correct bug in formatHex(char[], 2, 3) and add test for subranges of char[]
src/java.base/share/classes/java/util/HexFormat.java line 565:
> 563: */
> 564: private static void checkLiteral(CharSequence string, int index, String literal) {
> 565: assert index + literal.length() <= string.length() : "pre-checked invariant error";
or possibly:
`assert index <= string.length() - literal.length() : ...`
-------------
PR: https://git.openjdk.java.net/jdk/pull/482
More information about the core-libs-dev
mailing list