Package org.eclipse.jetty.util
Class StringUtil
- java.lang.Object
-
- org.eclipse.jetty.util.StringUtil
-
public class StringUtil extends Object
Fast String Utilities. These string utilities provide both convenience methods and performance improvements over most standard library versions. The main aim of the optimizations is to avoid object creation unless absolutely required.
-
-
Field Summary
Fields Modifier and Type Field Description static String__ISO_8859_1static String__LINE_SEPARATORDeprecated.useSystem.lineSeparator()insteadstatic String__UTF16static String__UTF8static StringALL_INTERFACESstatic StringCRLFstatic char[]lowercases
-
Constructor Summary
Constructors Constructor Description StringUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static voidappend(StringBuilder buf, byte b, int base)append hex digitstatic voidappend(StringBuilder buf, String s, int offset, int length)Append substring to StringBuilderstatic voidappend2digits(StringBuffer buf, int i)Append 2 digits (zero padded) to the StringBufferstatic voidappend2digits(StringBuilder buf, int i)Append 2 digits (zero padded) to the StringBuilderstatic String[]arrayFromString(String s)Parse the string representation of a list usingcsvSplit(List,String,int,int)static StringasciiToLowerCase(String s)fast lower case conversion.static String[]csvSplit(String s)Parse a CSV string usingcsvSplit(List,String, int, int)static String[]csvSplit(String s, int off, int len)Parse a CSV string usingcsvSplit(List,String, int, int)static List<String>csvSplit(List<String> list, String s, int off, int len)Split a quoted comma separated string to a liststatic booleanendsWithIgnoreCase(String s, String w)static booleanequals(String s, char[] buf, int offset, int length)static byte[]getBytes(String s)static byte[]getBytes(String s, String charset)static byte[]getUtf8Bytes(String s)static intindexFrom(String s, String chars)returns the next index of a character from the chars stringstatic intindexOfControlChars(String str)Find the index of a control characters in Stringstatic booleanisBlank(String str)Test if a string is null or only has whitespace characters in it.static booleanisNotBlank(String str)Test if a string is not null and contains at least 1 non-whitespace characters in it.static booleanisUTF8(String charset)static StringnonNull(String s)Return a non null string.static StringnormalizeCharset(String s)Convert alternate charset names (eg utf8) to normalized name (eg UTF-8).static StringnormalizeCharset(String s, int offset, int length)Convert alternate charset names (eg utf8) to normalized name (eg UTF-8).static Stringprintable(byte[] b)static Stringprintable(String name)static Stringreplace(String s, String sub, String with)replace substrings within string.static StringsanitizeXmlString(String html)static StringsidBytesToString(byte[] sidBytes)Deprecated.static byte[]sidStringToBytes(String sidString)Deprecated.static booleanstartsWithIgnoreCase(String s, String w)static inttoInt(String string, int from)Convert String to an integer.static longtoLong(String string)Convert String to an long.static StringtoString(byte[] b, int offset, int length, String charset)static StringtoUTF8String(byte[] b, int offset, int length)static Stringtruncate(String str, int maxSize)Truncate a string to a max size.static Stringunquote(String s)Deprecated.static StringvalueOf(Object object)The String value of an Object
-
-
-
Field Detail
-
ALL_INTERFACES
public static final String ALL_INTERFACES
- See Also:
- Constant Field Values
-
CRLF
public static final String CRLF
- See Also:
- Constant Field Values
-
__LINE_SEPARATOR
@Deprecated public static final String __LINE_SEPARATOR
Deprecated.useSystem.lineSeparator()instead
-
__ISO_8859_1
public static final String __ISO_8859_1
- See Also:
- Constant Field Values
-
__UTF8
public static final String __UTF8
- See Also:
- Constant Field Values
-
__UTF16
public static final String __UTF16
- See Also:
- Constant Field Values
-
lowercases
public static final char[] lowercases
-
-
Method Detail
-
normalizeCharset
public static String normalizeCharset(String s)
Convert alternate charset names (eg utf8) to normalized name (eg UTF-8).- Parameters:
s- the charset to normalize- Returns:
- the normalized charset (or null if normalized version not found)
-
normalizeCharset
public static String normalizeCharset(String s, int offset, int length)
Convert alternate charset names (eg utf8) to normalized name (eg UTF-8).- Parameters:
s- the charset to normalizeoffset- the offset in the charsetlength- the length of the charset in the input param- Returns:
- the normalized charset (or null if not found)
-
asciiToLowerCase
public static String asciiToLowerCase(String s)
fast lower case conversion. Only works on ascii (not unicode)- Parameters:
s- the string to convert- Returns:
- a lower case version of s
-
indexFrom
public static int indexFrom(String s, String chars)
returns the next index of a character from the chars string- Parameters:
s- the input string to searchchars- the chars to look for- Returns:
- the index of the character in the input stream found.
-
replace
public static String replace(String s, String sub, String with)
replace substrings within string.- Parameters:
s- the input stringsub- the string to look forwith- the string to replace with- Returns:
- the now replaced string
-
unquote
@Deprecated public static String unquote(String s)
Deprecated.Remove single or double quotes.- Parameters:
s- the input string- Returns:
- the string with quotes removed
-
append
public static void append(StringBuilder buf, String s, int offset, int length)
Append substring to StringBuilder- Parameters:
buf- StringBuilder to append tos- String to append fromoffset- The offset of the substringlength- The length of the substring
-
append
public static void append(StringBuilder buf, byte b, int base)
append hex digit- Parameters:
buf- the buffer to append tob- the byte to appendbase- the base of the hex output (almost always 16).
-
append2digits
public static void append2digits(StringBuffer buf, int i)
Append 2 digits (zero padded) to the StringBuffer- Parameters:
buf- the buffer to append toi- the value to append
-
append2digits
public static void append2digits(StringBuilder buf, int i)
Append 2 digits (zero padded) to the StringBuilder- Parameters:
buf- the buffer to append toi- the value to append
-
nonNull
public static String nonNull(String s)
Return a non null string.- Parameters:
s- String- Returns:
- The string passed in or empty string if it is null.
-
equals
public static boolean equals(String s, char[] buf, int offset, int length)
-
toUTF8String
public static String toUTF8String(byte[] b, int offset, int length)
-
indexOfControlChars
public static int indexOfControlChars(String str)
Find the index of a control characters in StringThis will return a result on the first occurrence of a control character, regardless if there are more than one.
Note: uses codepoint version of
Character.isISOControl(int)to support Unicode better.indexOfControlChars(null) == -1 indexOfControlChars("") == -1 indexOfControlChars("\r\n") == 0 indexOfControlChars("\t") == 0 indexOfControlChars(" ") == -1 indexOfControlChars("a") == -1 indexOfControlChars(".") == -1 indexOfControlChars(";\n") == 1 indexOfControlChars("abc\f") == 3 indexOfControlChars("z\010") == 1 indexOfControlChars(":") == 1- Parameters:
str- the string to test.- Returns:
- the index of first control character in string, -1 if no control characters encountered
-
isBlank
public static boolean isBlank(String str)
Test if a string is null or only has whitespace characters in it.Note: uses codepoint version of
Character.isWhitespace(int)to support Unicode better.isBlank(null) == true isBlank("") == true isBlank("\r\n") == true isBlank("\t") == true isBlank(" ") == true isBlank("a") == false isBlank(".") == false isBlank(";\n") == false- Parameters:
str- the string to test.- Returns:
- true if string is null or only whitespace characters, false if non-whitespace characters encountered.
-
isNotBlank
public static boolean isNotBlank(String str)
Test if a string is not null and contains at least 1 non-whitespace characters in it.Note: uses codepoint version of
Character.isWhitespace(int)to support Unicode better.isNotBlank(null) == false isNotBlank("") == false isNotBlank("\r\n") == false isNotBlank("\t") == false isNotBlank(" ") == false isNotBlank("a") == true isNotBlank(".") == true isNotBlank(";\n") == true- Parameters:
str- the string to test.- Returns:
- true if string is not null and has at least 1 non-whitespace character, false if null or all-whitespace characters.
-
isUTF8
public static boolean isUTF8(String charset)
-
printable
public static String printable(byte[] b)
-
getBytes
public static byte[] getBytes(String s)
-
getUtf8Bytes
public static byte[] getUtf8Bytes(String s)
-
sidBytesToString
@Deprecated public static String sidBytesToString(byte[] sidBytes)
Deprecated.Converts a binary SID to a string SID http://en.wikipedia.org/wiki/Security_Identifier S-1-IdentifierAuthority-SubAuthority1-SubAuthority2-...-SubAuthorityn- Parameters:
sidBytes- the SID bytes to build from- Returns:
- the string SID
-
sidStringToBytes
@Deprecated public static byte[] sidStringToBytes(String sidString)
Deprecated.Converts a string SID to a binary SID http://en.wikipedia.org/wiki/Security_Identifier S-1-IdentifierAuthority-SubAuthority1-SubAuthority2-...-SubAuthorityn- Parameters:
sidString- the string SID- Returns:
- the binary SID
-
toInt
public static int toInt(String string, int from)
Convert String to an integer. Parses up to the first non-numeric character. If no number is found an IllegalArgumentException is thrown- Parameters:
string- A String containing an integer.from- The index to start parsing from- Returns:
- an int
-
toLong
public static long toLong(String string)
Convert String to an long. Parses up to the first non-numeric character. If no number is found an IllegalArgumentException is thrown- Parameters:
string- A String containing an integer.- Returns:
- an int
-
truncate
public static String truncate(String str, int maxSize)
Truncate a string to a max size.- Parameters:
str- the string to possibly truncatemaxSize- the maximum size of the string- Returns:
- the truncated string. if
strparam is null, then the returned string will also be null.
-
arrayFromString
public static String[] arrayFromString(String s)
Parse the string representation of a list usingcsvSplit(List,String,int,int)- Parameters:
s- The string to parse, expected to be enclosed as '[...]'- Returns:
- An array of parsed values.
-
csvSplit
public static String[] csvSplit(String s)
Parse a CSV string usingcsvSplit(List,String, int, int)- Parameters:
s- The string to parse- Returns:
- An array of parsed values.
-
csvSplit
public static String[] csvSplit(String s, int off, int len)
Parse a CSV string usingcsvSplit(List,String, int, int)- Parameters:
s- The string to parseoff- The offset into the string to start parsinglen- The len in characters to parse- Returns:
- An array of parsed values.
-
csvSplit
public static List<String> csvSplit(List<String> list, String s, int off, int len)
Split a quoted comma separated string to a listHandle rfc4180-like CSV strings, with the exceptions:
- quoted values may contain double quotes escaped with back-slash
- Non-quoted values are trimmed of leading trailing white space
- trailing commas are ignored
- double commas result in a empty string value
- Parameters:
list- The Collection to split to (or null to get a new list)s- The string to parseoff- The offset into the string to start parsinglen- The len in characters to parse- Returns:
- list containing the parsed list values
-
valueOf
public static String valueOf(Object object)
The String value of an ObjectThis method calls
String.valueOf(Object)unless the object is null, in which case null is returned- Parameters:
object- The object- Returns:
- String value or null
-
-