| java.lang.Object | |
| ↳ | com.pnfsoftware.jeb.util.format.Formatter |
A collection of binary and number formatting and escaping methods.
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Formatter() | |||||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| static void | addCustomPrintableCharRange(char begin, char end, boolean printable) | ||||||||||
| static CharSequence |
byteArrayToHex(byte[] data, int pos, int end, boolean asciiString, int bytesPerLine)
Return the String hexadecimal representation of a byte array.
| ||||||||||
| static CharSequence |
byteArrayToHex(byte[] data, int pos, int end)
Same as
byteArrayToHexString(byte[], int, int), but returns a raw
CharSequence | ||||||||||
| static CharSequence | byteArrayToHex(byte[] data) | ||||||||||
| static String | byteArrayToHexString(byte[] data, int pos) | ||||||||||
| static String | byteArrayToHexString(byte[] data) | ||||||||||
| static String |
byteArrayToHexString(byte[] data, int pos, int end)
Return the String hexadecimal representation of a byte array.
| ||||||||||
| static String |
escapeAllCharacters(CharSequence s)
Force-escape a string to a sequence of
\\u character codes. | ||||||||||
| static String |
escapeByte(int ch)
Convert a bytes to character such that a byte
0xBB is converted to character
», and escape the resulting character. | ||||||||||
| static String |
escapeBytes(byte[] bytes, int offset, int size)
Convert bytes to a string of characters such that a byte
0xBB is converted to
character », and escape the resulting string. | ||||||||||
| static String |
escapeBytes(byte[] bytes)
Convert bytes to a string of characters such that a byte
0xBB is converted to
character », and escape the resulting string. | ||||||||||
| static String |
escapeCharacter(char c, boolean keepUnicodePrintables)
Escape a character, if necessary.
| ||||||||||
| static String |
escapeCharacter(char c)
Escape a string, keeping unicode printable characters.
| ||||||||||
| static String |
escapeString(CharSequence s)
Escape a string.
| ||||||||||
| static String |
escapeString(CharSequence s, boolean keepUnicodePrintables)
Escape a string.
| ||||||||||
| static String |
escapeString(CharSequence s, int directionalityEnclosure, boolean keepUnicodePrintables, Set<Character> doNotEscapeList)
Escape a CharSequence.
| ||||||||||
| static String |
escapeToJavaStringArray(Collection<? extends Object> objects)
This handy method takes a collection of N objects as input and generates the string
representation a string array containing N strings, each of which being the
escaped toString() representation of the collection
elements. | ||||||||||
| static CharSequence |
formatBinaryBlock(byte[] data, int offset, int size, long offsetDelta, boolean is64bit)
Format a block of bytes as a buffer of hexadecimal lines.
| ||||||||||
| static CharSequence |
formatBinaryBlock(byte[] data)
Format a block of bytes.
| ||||||||||
| static CharSequence |
formatBinaryBlock(byte[] data, int offset, int size, int offsetDelta)
Format a block of bytes.
| ||||||||||
| static CharSequence |
formatBinaryBlock(byte[] data, int offset, int size)
Format a block of bytes.
| ||||||||||
| static CharSequence | formatBinaryLine(byte[] data, int offset, int size, int minVirtualSize, boolean separateWithSpace) | ||||||||||
| static CharSequence |
formatBinaryLine(byte[] data)
Format a block of bytes.
| ||||||||||
| static CharSequence |
formatBinaryLine(byte[] data, int offset, int size)
Format a block of bytes.
| ||||||||||
| static CharSequence |
formatBinaryLine(byte[] data, int offset, int size, int minVirtualSize)
Format a block of bytes as a hexadecimal CharSequence representation.
| ||||||||||
| static CharSequence | formatBinaryLineTruncate(byte[] data, int offset, int size, int fixedCount) | ||||||||||
| static CharSequence | formatBinaryLineTruncate(byte[] data, int offset, int size, int maxSize, char truncateChar) | ||||||||||
| static String | formatHexNumbers(Collection<? extends Number> list) | ||||||||||
| static String | formatNumbers(Collection<? extends Number> list, int base, String pfx, String sfx) | ||||||||||
| static byte[] |
hexStringToByteArray(String s)
Convert a series of hexadecimal String to a byte array.
| ||||||||||
| static byte[] |
hexStringToByteArray(String s, int pos, int end)
Convert a series of hexadecimal String to a byte array.
| ||||||||||
| static String |
htmlEscape(String str)
Escape HTML 4 entities by their
&xxx; equivalents. | ||||||||||
| static String |
htmlEscape(String str, boolean replaceNewlinesByBR)
Escape HTML 4 entities by their
&xxx; equivalents. | ||||||||||
| static String |
integerToAlphaString(int n)
Convert an integer to an alphabetic string, using the following pattern:
a: 0 b: 1 ... | ||||||||||
| static boolean |
isPrintableChar(char c)
Determine if a character is printable.
| ||||||||||
| static void | resetCustomPrintableCharRanges() | ||||||||||
| static String |
toHexString(short v, boolean upperCase, int padZero)
Convert a short to its hex representation.
| ||||||||||
| static String |
toHexString(long v, boolean upperCase)
Convert a long to its hex representation.
| ||||||||||
| static String |
toHexString(short v, boolean upperCase)
Convert a short to its hex representation.
| ||||||||||
| static String |
toHexString(byte v, boolean upperCase, int padZero)
Convert a byte to its hex representation.
| ||||||||||
| static String |
toHexString(int v, boolean upperCase)
Convert an int to its hex representation.
| ||||||||||
| static String |
toHexString(int v, boolean upperCase, int padZero)
Convert a int to its hex representation.
| ||||||||||
| static String |
toHexString(byte v, boolean upperCase)
Convert a byte to its hex representation.
| ||||||||||
| static String |
toHexString(long v, boolean upperCase, int padZero)
Convert a long to its hex representation.
| ||||||||||
| static String |
toString(Object o)
Pretty-format any object, using a
PrettyPrinter object. | ||||||||||
| static String |
unescapeString(String s)
Unescape a string escaped with standard String-formatter backslash-based escape sequences.
| ||||||||||
| static List<String> |
wordWrap(String str, int wrapLength, int wrapType)
Word-wrap a string.
| ||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
Return the String hexadecimal representation of a byte array. The hexadecimal part is
returned as upper case.
| data | byte array to convert |
|---|---|
| pos | first byte position |
| end | last byte position (excluded) |
| asciiString | When true, return the hexadecimal along with its readable ascii characters
(otherwise, see byteArrayToHex(byte[], int, int) For example:
({10, 74, 101, 98}, 0, 4, true, 0x10) => "0A4A6562" .Jeb
|
| bytesPerLine | maximum number of bytes per line for hexadecimal representation |
Same as byteArrayToHexString(byte[], int, int), but returns a raw
CharSequence
| data | byte array to convert |
|---|---|
| pos | first byte position |
| end | last byte position (excluded) |
Return the String hexadecimal representation of a byte array. The hexadecimal part is
returned as upper case.
For example:
({10, 27, 56}, 0, 3) => "0A1B38"
({10, 27, 56}, 1, 2) => "1B"
| data | byte array to convert |
|---|---|
| pos | first byte position |
| end | last byte position (excluded) |
Force-escape a string to a sequence of \\u character codes. All characters,
regardless of their printability, are escaped.
| s | a string |
|---|
Convert a bytes to character such that a byte 0xBB is converted to character
», and escape the resulting character.
Convert bytes to a string of characters such that a byte 0xBB is converted to
character », and escape the resulting string. Only ascii-printable chars will be
left unescaped, all other characters will be escaped.
| bytes | bytes array |
|---|---|
| offset | start index |
| size | count of bytes to escape |
Convert bytes to a string of characters such that a byte 0xBB is converted to
character », and escape the resulting string. Only ascii-printable chars will be
left unescaped, all other characters will be escaped.
| bytes | bytes array |
|---|
Escape a character, if necessary.
| c | the character to be escaped |
|---|---|
| keepUnicodePrintables | if true, a printable unicode, non-ascii character will be left unescaped |
Escape a string, keeping unicode printable characters.
Escape a string. Unicode printable characters are not escaped (refer to
isPrintableChar(char)).
| s | a CharSequence |
|---|
Escape a string.
| s | a CharSequence |
|---|---|
| keepUnicodePrintables | if true, unicode printable characters are not escaped (refer to
isPrintableChar(char)). |
Escape a CharSequence.
| s | the CharSequence to be escaped |
|---|---|
| directionalityEnclosure | if non-0, a string containing RTL (right-to-left) characters
will be enclosed in special Unicode characters to force directionality when
embedding the string into another string: - -1: nothing added, nothing changed - 0: nothing added, directionality when embedding will be determined from the string and its context (keepUnicodePrintables will be reset to false if RTL chars are detected) - 1: force left-to-right for embedding - 2: force right-to-left for embedding |
| keepUnicodePrintables | if true, unicode printable characters are not escaped (refer to
isPrintableChar(char)), eg, KCJ/Russian/etc. character sets |
| doNotEscapeList | optional collection of characters that won't be escaped |
This handy method takes a collection of N objects as input and generates the string
representation a string array containing N strings, each of which being the
escaped toString() representation of the collection
elements.
| objects | a collection of any objects |
|---|
Format a block of bytes as a buffer of hexadecimal lines. Each line represents the 16 bytes of buffer data; it is prefixed by an optional offset (address) base and suffixed by the Ascii representation of the bytes. Note that non-printable, non-Ascii characters are represented as dots.
| data | bytes buffer |
|---|---|
| offset | beginning of bytes sequence to be formatted |
| size | number of bytes to be formatted |
| offsetDelta | an offset delta |
| is64bit | indicates if the prefix offset should be formatted as a 64-bit or 32-bit value |
Format a block of bytes. Same as formatBinaryBlock(data, 0, data.length)
| data | bytes buffer |
|---|
Format a block of bytes. Same as formatBinaryBlock(data, offset, size, offsetDelta, false)
Format a block of bytes. Same as formatBinaryBlock(data, offset, size, 0)
| data | bytes buffer |
|---|---|
| offset | beginning of bytes sequence to be formatted |
| size | number of bytes to be formatted |
Format a block of bytes. Same as formatBinaryLine(data, 0, data.length, 0).
| data | bytes buffer |
|---|
Format a block of bytes. Same as formatBinaryLine(data, 0, size, size).
Format a block of bytes as a hexadecimal CharSequence representation. Bytes will be represented space-separated.
| data | bytes buffer |
|---|---|
| offset | beginning of bytes sequence to be formatted |
| size | number of bytes to be formatted |
| minVirtualSize | minimum number of bytes that the resulting string is supposed to represent; phantom bytes (formatted as empty space) will be appended if necessary |
Convert a series of hexadecimal String to a byte array. Remove potential "h" suffix and "0x" prefix.
| s | Input String |
|---|
Convert a series of hexadecimal String to a byte array. Input must be padded with zeroes. If data is invalid, a null array is returned.
hexStringToByteArray("1234ABCD", 0, 8) => {0x12, 0x23, 0xAB, 0xCD}
hexStringToByteArray("1234ABCD", 0, 4) => {0x12, 0x23}
hexStringToByteArray("1234ABCD", 0, 5) => null
| s | Input String |
|---|---|
| pos | the start parsing position |
| end | the end parsing position |
Escape HTML 4 entities by their &xxx; equivalents. Line-feeds are not replaced
by the (unescaped) <br>
tag.
| str | the string to escape |
|---|
Escape HTML 4 entities by their &xxx; equivalents.
| str | the string to escape |
|---|---|
| replaceNewlinesByBR | if true, line-feeds are replaced by the (unescaped) <br>
tag |
Convert an integer to an alphabetic string, using the following pattern:
a: 0 b: 1 ... z: 25 aa: 26 ... az: 51 ba: 52 ... zzz: 26-1+26*26 aaa: 26+26*26 ... aaaa: 26+26*26+26*26*26 ...Negative numbers will generate a string prefixed by '-'.
Determine if a character is printable. By default, this method defines a character as
`printable` if and only if:
1- it is not an ISO control character
2- it is not a surrogate (low or high)
3- it is not a special character (block: SPECIAL)
4- it is not a modifier character (categories: MODIFIER_LETTER, MODIFIER_SYMBOL)
Tests 1 and 2 are always verified by this method (i.e. control chars and surrogate and NOT
considered printable).
Tests 3 and 4 can be globally bypassed and customized via via
addCustomPrintableCharRange(char, char, boolean) and
resetCustomPrintableCharRanges().
| c | the input character |
|---|
Convert a short to its hex representation.
| v | short to convert |
|---|---|
| upperCase | true if the hex must be in upper case |
| padZero | indicate the number of characters that will be output (will pad with zeroes) |
Convert a long to its hex representation.
| v | long to convert |
|---|---|
| upperCase | true if the hex must be in upper case |
Convert a short to its hex representation.
| v | short to convert |
|---|---|
| upperCase | true if the hex must be in upper case |
Convert a byte to its hex representation.
| v | byte to convert |
|---|---|
| upperCase | true if the hex must be in upper case |
| padZero | indicate the number of characters that will be output (will pad with zeroes) |
Convert an int to its hex representation.
| v | int to convert |
|---|---|
| upperCase | true if the hex must be in upper case |
Convert a int to its hex representation.
| v | int to convert |
|---|---|
| upperCase | true if the hex must be in upper case |
| padZero | indicate the number of characters that will be output (will pad with zeroes) |
Convert a byte to its hex representation.
| v | byte to convert |
|---|---|
| upperCase | true if the hex must be in upper case |
Convert a long to its hex representation.
| v | long to convert |
|---|---|
| upperCase | true if the hex must be in upper case |
| padZero | indicate the number of characters that will be output (will pad with zeroes) |
Pretty-format any object, using a PrettyPrinter object. Elements of arrays,
collections, and maps are rendered individually. For non-basic types, toString is
called. For maps, the key-value pairs are rendered one per line line. Indenting uses 2
white-space characters.
| o | an object |
|---|
Unescape a string escaped with standard String-formatter backslash-based escape sequences.
| s | an escaped string, allowed escapes: \\ \' \" \n \r \t \b \f \u???? \x?? |
|---|
| ParseException | if an error occurs |
|---|
Word-wrap a string. The result is a list of (CR)LF-empty lines whose lengths are equal to the provided wrapping length, modulo the wrapping style.
| str | the text buffer to be wrapped |
|---|---|
| wrapLength | wrapping length, must be strictly positive |
| wrapType | wrapping type: 0: strict (the wrapping length is not a hint, all lines will have the provided length, except for lines ending with a new-line character before the required limit; words may be cut) -1: forbid length crossing (i.e. the wrapping length is a hard hint; favor shorter lines; words may be cut) +1: allow length crossing (i.e. the wrapping length is a soft hint; favor longer lines) |