@Internal public final class StringUtil extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.nio.charset.Charset |
UTF16LE |
static java.nio.charset.Charset |
UTF8 |
static java.nio.charset.Charset |
WIN_1252 |
Modifier and Type | Method and Description |
---|---|
static int |
countMatches(java.lang.CharSequence haystack,
char needle)
Count number of occurrences of needle in haystack
Has same signature as org.apache.commons.lang3.StringUtils#countMatches
|
static boolean |
endsWithIgnoreCase(java.lang.String haystack,
java.lang.String suffix)
Tests if the string ends with the specified suffix, ignoring case consideration.
|
static int |
getEncodedSize(java.lang.String value) |
static java.lang.String |
getFromCompressedUnicode(byte[] string,
int offset,
int len)
Read 8 bit data (in ISO-8859-1 codepage) into a (unicode) Java
String and return.
|
static java.lang.String |
getFromUnicodeLE(byte[] string)
Given a byte array of 16-bit unicode characters in little endian
format (most important byte last), return a Java String representation
of it.
|
static java.lang.String |
getFromUnicodeLE(byte[] string,
int offset,
int len)
Given a byte array of 16-bit unicode characters in Little Endian
format (most important byte last), return a Java String representation
of it.
|
static java.lang.String |
getFromUnicodeLE0Terminated(byte[] string,
int offset,
int len)
Given a byte array of 16-bit unicode characters in Little Endian
format (most important byte last), return a Java String representation
of it.
|
static int |
getMaxRecordLength() |
static java.lang.String |
getPreferredEncoding() |
static byte[] |
getToUnicodeLE(java.lang.String string)
Convert String to 16-bit unicode characters in little endian format
|
static boolean |
hasMultibyte(java.lang.String value)
check the parameter has multibyte character
|
static boolean |
isBlank(java.lang.CharSequence cs)
Checks if a CharSequence is empty (""), null or whitespace only.
|
static boolean |
isNotBlank(java.lang.CharSequence cs)
Checks if a CharSequence is not empty (""), not null and not whitespace only.
|
static boolean |
isUpperCase(char c) |
static java.lang.String |
join(java.lang.Object[] array) |
static java.lang.String |
join(java.lang.Object[] array,
java.lang.String separator) |
static java.lang.String |
join(java.lang.String separator,
java.lang.Object... array) |
static int |
length(java.lang.CharSequence cs)
Gets a CharSequence length or
0 if the CharSequence is
null . |
static java.lang.String |
mapMsCodepointString(java.lang.String string)
Some strings may contain encoded characters of the unicode private use area.
|
static void |
putCompressedUnicode(java.lang.String input,
byte[] output,
int offset)
Takes a unicode (java) string, and returns it as 8 bit data (in ISO-8859-1
codepage).
|
static void |
putCompressedUnicode(java.lang.String input,
LittleEndianOutput out) |
static void |
putUnicodeLE(java.lang.String input,
byte[] output,
int offset)
Takes a unicode string, and returns it as little endian (most
important byte last) bytes in the supplied byte array.
|
static void |
putUnicodeLE(java.lang.String input,
LittleEndianOutput out) |
static java.lang.String |
readCompressedUnicode(LittleEndianInput in,
int nChars) |
static java.lang.String |
readUnicodeLE(LittleEndianInput in,
int nChars) |
static java.lang.String |
readUnicodeString(LittleEndianInput in)
InputStream
in is expected to contain:
ushort nChars
byte is16BitFlag
byte[]/char[] characterData
For this encoding, the is16BitFlag is always present even if nChars==0. |
static java.lang.String |
readUnicodeString(LittleEndianInput in,
int nChars)
InputStream
in is expected to contain:
byte is16BitFlag
byte[]/char[] characterData
For this encoding, the is16BitFlag is always present even if nChars==0. |
static java.lang.String |
repeat(char ch,
int repeat)
Returns padding using the specified delimiter repeated
to a given length.
|
static void |
setMaxRecordLength(int length) |
static boolean |
startsWithIgnoreCase(java.lang.String haystack,
java.lang.String prefix)
Tests if the string starts with the specified prefix, ignoring case consideration.
|
static java.lang.String |
toLowerCase(char c) |
static java.lang.String |
toUpperCase(char c) |
static void |
writeUnicodeString(LittleEndianOutput out,
java.lang.String value)
OutputStream
out will get:
ushort nChars
byte is16BitFlag
byte[]/char[] characterData
For this encoding, the is16BitFlag is always present even if nChars==0. |
static void |
writeUnicodeStringFlagAndData(LittleEndianOutput out,
java.lang.String value)
OutputStream
out will get:
byte is16BitFlag
byte[]/char[] characterData
For this encoding, the is16BitFlag is always present even if nChars==0. |
public static final java.nio.charset.Charset UTF16LE
public static final java.nio.charset.Charset UTF8
public static final java.nio.charset.Charset WIN_1252
public static void setMaxRecordLength(int length)
length
- the max record length allowed for StringUtilpublic static int getMaxRecordLength()
public static java.lang.String getFromUnicodeLE(byte[] string, int offset, int len) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException
{ 0x16, 0x00 } -0x16
string
- the byte array to be convertedoffset
- the initial offset into the
byte array. it is assumed that string[ offset ] and string[ offset +
1 ] contain the first 16-bit unicode characterlen
- the length of the final stringnull
.java.lang.ArrayIndexOutOfBoundsException
- if offset is out of bounds for
the byte array (i.e., is negative or is greater than or equal to
string.length)java.lang.IllegalArgumentException
- if len is too large (i.e.,
there is not enough data in string to create a String of that
length)public static java.lang.String getFromUnicodeLE(byte[] string)
{ 0x16, 0x00 } -0x16
string
- the byte array to be convertednull
public static byte[] getToUnicodeLE(java.lang.String string)
string
- the stringpublic static java.lang.String getFromCompressedUnicode(byte[] string, int offset, int len)
string
- byte array to readoffset
- offset to read byte arraylen
- length to read byte arraypublic static java.lang.String readCompressedUnicode(LittleEndianInput in, int nChars)
public static java.lang.String readUnicodeString(LittleEndianInput in)
in
is expected to contain:
This structure is also known as a XLUnicodeString.
public static java.lang.String readUnicodeString(LittleEndianInput in, int nChars)
in
is expected to contain:
readUnicodeString(LittleEndianInput)
can be used.public static void writeUnicodeString(LittleEndianOutput out, java.lang.String value)
out
will get:
public static void writeUnicodeStringFlagAndData(LittleEndianOutput out, java.lang.String value)
out
will get:
writeUnicodeString(LittleEndianOutput, String)
can be used.public static int getEncodedSize(java.lang.String value)
writeUnicodeString(LittleEndianOutput, String)
public static void putCompressedUnicode(java.lang.String input, byte[] output, int offset)
input
- the String containing the data to be writtenoutput
- the byte array to which the data is to be writtenoffset
- an offset into the byte arrat at which the data is start
when writtenpublic static void putCompressedUnicode(java.lang.String input, LittleEndianOutput out)
public static void putUnicodeLE(java.lang.String input, byte[] output, int offset)
input
- the String containing the unicode data to be writtenoutput
- the byte array to hold the uncompressed unicode, should be twice the length of the Stringoffset
- the offset to start writing into the byte arraypublic static void putUnicodeLE(java.lang.String input, LittleEndianOutput out)
public static java.lang.String readUnicodeLE(LittleEndianInput in, int nChars)
public static java.lang.String getPreferredEncoding()
public static boolean hasMultibyte(java.lang.String value)
value
- string to checkpublic static boolean startsWithIgnoreCase(java.lang.String haystack, java.lang.String prefix)
public static boolean endsWithIgnoreCase(java.lang.String haystack, java.lang.String suffix)
@Internal public static java.lang.String toLowerCase(char c)
@Internal public static java.lang.String toUpperCase(char c)
@Internal public static boolean isUpperCase(char c)
public static java.lang.String mapMsCodepointString(java.lang.String string)
string
- the original string@Internal public static java.lang.String join(java.lang.Object[] array, java.lang.String separator)
@Internal public static java.lang.String join(java.lang.Object[] array)
@Internal public static java.lang.String join(java.lang.String separator, java.lang.Object... array)
public static int countMatches(java.lang.CharSequence haystack, char needle)
haystack
- the CharSequence to check, may be nullneedle
- the character to count the quantity ofpublic static java.lang.String getFromUnicodeLE0Terminated(byte[] string, int offset, int len) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException
#61881: there seem to be programs out there, which write the 0-termination also at the beginning of the string. Check if the next two bytes contain a valid ascii char and correct the _recdata with a '?' char
string
- the byte array to be convertedoffset
- the initial offset into the
byte array. it is assumed that string[ offset ] and string[ offset +
1 ] contain the first 16-bit unicode characterlen
- the max. length of the final stringnull
.java.lang.ArrayIndexOutOfBoundsException
- if offset is out of bounds for
the byte array (i.e., is negative or is greater than or equal to
string.length)java.lang.IllegalArgumentException
- if len is too large (i.e.,
there is not enough data in string to create a String of that
length)public static int length(java.lang.CharSequence cs)
0
if the CharSequence is
null
.
copied from commons-lang3cs
- a CharSequence or null
0
if the CharSequence is
null
.public static boolean isBlank(java.lang.CharSequence cs)
Checks if a CharSequence is empty (""), null or whitespace only.
Whitespace is defined by Character.isWhitespace(char)
.
StringUtil.isBlank(null) = true StringUtil.isBlank("") = true StringUtil.isBlank(" ") = true StringUtil.isBlank("bob") = false StringUtil.isBlank(" bob ") = falsecopied from commons-lang3
cs
- the CharSequence to check, may be nulltrue
if the CharSequence is null, empty or whitespace onlypublic static boolean isNotBlank(java.lang.CharSequence cs)
Checks if a CharSequence is not empty (""), not null and not whitespace only.
Whitespace is defined by Character.isWhitespace(char)
.
StringUtil.isNotBlank(null) = false StringUtil.isNotBlank("") = false StringUtil.isNotBlank(" ") = false StringUtil.isNotBlank("bob") = true StringUtil.isNotBlank(" bob ") = truecopied from commons-lang3
cs
- the CharSequence to check, may be nulltrue
if the CharSequence is
not empty and not null and not whitespace onlypublic static java.lang.String repeat(char ch, int repeat)
Returns padding using the specified delimiter repeated to a given length.
StringUtil.repeat('e', 0) = "" StringUtil.repeat('e', 3) = "eee" StringUtil.repeat('e', -2) = ""
Note: this method does not support padding with
Unicode Supplementary Characters
as they require a pair of char
s to be represented.
ch
- character to repeatrepeat
- number of times to repeat char, negative treated as zeroCopyright 2022 The Apache Software Foundation or its licensors, as applicable.