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) |