public class StringUtil
extends java.lang.Object
Constructor and Description |
---|
StringUtil() |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
capitalize(java.lang.String s) |
static java.lang.String |
chomp(java.lang.String s)
Removes the line-break from the end of the string.
|
static java.util.Locale |
deduceLocale(java.lang.String input) |
static java.lang.String |
emptyToNull(java.lang.String s)
Converts a 0-length string to null, leaves the string as is otherwise.
|
static java.lang.String |
FTLStringLiteralDec(java.lang.String s)
FTL string literal decoding.
\\, \", \', \n, \t, \r, \b and \f will be replaced according to
Java rules.
|
static java.lang.String |
FTLStringLiteralEnc(java.lang.String s) |
static boolean |
getYesNo(java.lang.String s) |
static java.lang.String |
HTMLEnc(java.lang.String s)
Deprecated.
Use
XHTMLEnc(String) instead, because it escapes apostrophe-quote too. |
static boolean |
isXMLID(java.lang.String name) |
static java.lang.String |
javaScriptStringEnc(java.lang.String s)
Escapes a
String to be safely insertable into a JavaScript string literal; for more see
jsStringEnc(s, false) . |
static java.lang.String |
javaStringEnc(java.lang.String s)
Escapes the
String with the escaping rules of Java language
string literals, so it's safe to insert the value into a string literal. |
static java.lang.String |
jQuote(java.lang.Object obj)
|
static java.lang.String |
jQuote(java.lang.String s)
Quotes string as Java Language string literal.
|
static java.lang.String |
jQuoteNoXSS(java.lang.Object obj)
|
static java.lang.String |
jQuoteNoXSS(java.lang.String s)
|
static java.lang.String |
jsonStringEnc(java.lang.String s)
Escapes a
String to be safely insertable into a JSON string literal; for more see
jsStringEnc(s, true) . |
static java.lang.String |
jsStringEnc(java.lang.String s,
boolean json)
Escapes a
String to be safely insertable into a JavaScript or a JSON string literal. |
static java.lang.String |
leftPad(java.lang.String s,
int minLength)
Pads the string at the left with spaces until it reaches the desired
length.
|
static java.lang.String |
leftPad(java.lang.String s,
int minLength,
char filling)
Pads the string at the left with the specified character until it reaches
the desired length.
|
static java.lang.String |
leftPad(java.lang.String s,
int minLength,
java.lang.String filling)
Pads the string at the left with a filling pattern until it reaches the
desired length.
|
static boolean |
matchesName(java.lang.String qname,
java.lang.String nodeName,
java.lang.String nsURI,
Environment env) |
static java.util.Map |
parseNameValuePairList(java.lang.String s,
java.lang.String defaultValue)
Parses a name-value pair list, where the pairs are separated with comma,
and the name and value is separated with colon.
|
static java.lang.String |
replace(java.lang.String text,
java.lang.String oldSub,
java.lang.String newSub)
Same as
replace(String, String, String, boolean, boolean) with two false parameters. |
static java.lang.String |
replace(java.lang.String text,
java.lang.String oldsub,
java.lang.String newsub,
boolean caseInsensitive,
boolean firstOnly)
Replaces all occurrences of a sub-string in a string.
|
static java.lang.String |
rightPad(java.lang.String s,
int minLength)
Pads the string at the right with spaces until it reaches the desired
length.
|
static java.lang.String |
rightPad(java.lang.String s,
int minLength,
char filling)
Pads the string at the right with the specified character until it
reaches the desired length.
|
static java.lang.String |
rightPad(java.lang.String s,
int minLength,
java.lang.String filling)
Pads the string at the right with a filling pattern until it reaches the
desired length.
|
static java.lang.String |
RTFEnc(java.lang.String s)
Rich Text Format encoding (does not replace line breaks).
|
static java.lang.String[] |
split(java.lang.String s,
char c)
Splits a string at the specified character.
|
static java.lang.String[] |
split(java.lang.String s,
java.lang.String sep,
boolean caseInsensitive)
Splits a string at the specified string.
|
static java.lang.String |
tryToString(java.lang.Object object)
Tries to run toString(), but if that fails, returns a
"[toString failed: " + e + "]" instead. |
static java.lang.String |
URLEnc(java.lang.String s,
java.lang.String charset)
URL encoding (like%20this).
|
static int |
versionStringToInt(java.lang.String version)
Converts a version number string to an integer for easy comparison.
|
static java.lang.String |
XHTMLEnc(java.lang.String s)
XHTML Encoding.
|
static java.lang.String |
XMLEnc(java.lang.String s)
XML Encoding.
|
static java.lang.String |
XMLEncNA(java.lang.String s)
XML encoding without replacing apostrophes.
|
static java.lang.String |
XMLEncNQG(java.lang.String s)
XML encoding without replacing apostrophes and quotation marks and
greater-thans (except in
]]> ). |
static java.lang.String |
XMLEncQAttr(java.lang.String s)
XML encoding for attributes valies quoted with " (not with '!).
|
public static java.lang.String HTMLEnc(java.lang.String s)
XHTMLEnc(String)
instead, because it escapes apostrophe-quote too.public static java.lang.String XMLEnc(java.lang.String s)
public static java.lang.String XHTMLEnc(java.lang.String s)
public static java.lang.String XMLEncNA(java.lang.String s)
XMLEnc(String)
public static java.lang.String XMLEncQAttr(java.lang.String s)
XMLEnc(String)
public static java.lang.String XMLEncNQG(java.lang.String s)
]]>
).XMLEnc(String)
public static java.lang.String RTFEnc(java.lang.String s)
public static java.lang.String URLEnc(java.lang.String s, java.lang.String charset) throws java.io.UnsupportedEncodingException
java.io.UnsupportedEncodingException
public static java.lang.String FTLStringLiteralEnc(java.lang.String s)
public static java.lang.String FTLStringLiteralDec(java.lang.String s) throws ParseException
s
- String literal without the surrounding quotation marksParseException
- if there string contains illegal escapespublic static java.util.Locale deduceLocale(java.lang.String input)
public static java.lang.String capitalize(java.lang.String s)
public static boolean getYesNo(java.lang.String s)
public static java.lang.String[] split(java.lang.String s, char c)
public static java.lang.String[] split(java.lang.String s, java.lang.String sep, boolean caseInsensitive)
public static java.lang.String replace(java.lang.String text, java.lang.String oldSub, java.lang.String newSub)
replace(String, String, String, boolean, boolean)
with two false
parameters.public static java.lang.String replace(java.lang.String text, java.lang.String oldsub, java.lang.String newsub, boolean caseInsensitive, boolean firstOnly)
text
- The string where it will replace oldsub
with
newsub
.public static java.lang.String chomp(java.lang.String s)
public static java.lang.String emptyToNull(java.lang.String s)
s
- maybe null
.public static java.lang.String jQuote(java.lang.Object obj)
public static java.lang.String jQuote(java.lang.String s)
"null"
if s
is null
.public static java.lang.String jQuoteNoXSS(java.lang.Object obj)
public static java.lang.String jQuoteNoXSS(java.lang.String s)
jQuoteNoXSS(String)
but also escapes '<'
as <
. This is used for log messages to prevent XSS
on poorly written Web-based log viewers.public static java.lang.String javaStringEnc(java.lang.String s)
String
with the escaping rules of Java language
string literals, so it's safe to insert the value into a string literal.
The resulting string will not be quoted.
All characters under UCS code point 0x20 will be escaped. Where they have no dedicated escape sequence in Java, they will be replaced with hexadecimal escape (\uXXXX).
jQuote(String)
public static java.lang.String javaScriptStringEnc(java.lang.String s)
String
to be safely insertable into a JavaScript string literal; for more see
jsStringEnc(s, false)
.public static java.lang.String jsonStringEnc(java.lang.String s)
String
to be safely insertable into a JSON string literal; for more see
jsStringEnc(s, true)
.public static java.lang.String jsStringEnc(java.lang.String s, boolean json)
String
to be safely insertable into a JavaScript or a JSON string literal.
The resulting string will not be quoted; the caller must ensure that they are there in the final
output. Note that for JSON, the quotation marks must be "
, not '
, because JSON doesn't escape
'
.
The escaping rules guarantee that if the inside
of the literal is from one or more touching sections of strings escaped with this, no character sequence will
occur that closes the string literal or has special meaning in HTML/XML that can terminate the script section.
(If, however, the escaped section is preceded by or followed by strings from other sources, this can't be
guaranteed in some rare cases. Like x = "</${a?js_string}" might closes the "script"
element if a
is is "script>"
.)
The escaped characters are:
Input | Output |
---|---|
" | \" |
' if not in JSON-mode | \' |
\ | \\ |
/ if the method can't know that it won't be directly after < | \/ |
> if the method can't know that it won't be directly after ]] or -- | JavaScript: \>; JSON: \u003E |
< if the method can't know that it won't be directly followed by ! or ? | \u003C |
u0000-u001f (UNICODE control characters - disallowed by JSON) u007f-u009f (UNICODE control characters - disallowed by JSON) | \n, \r and such, or if there's no such dedicated escape: JavaScript: \xXX, JSON: \uXXXX |
u2028 (Line separator - source code line-break in ECMAScript) u2029 (Paragraph separator - source code line-break in ECMAScript) | \uXXXX |
public static java.util.Map parseNameValuePairList(java.lang.String s, java.lang.String defaultValue) throws java.text.ParseException
defaultValue
is not null. When a
value is omitted, then the colon after the key must be omitted as well.
The same key can't be used for multiple times.s
- the string to parse.
For example: "strong:100, soft:900"
.defaultValue
- the value used when the value is omitted in a
key-value pair.java.text.ParseException
- if the string is not a valid name-value
pair list.public static boolean isXMLID(java.lang.String name)
public static boolean matchesName(java.lang.String qname, java.lang.String nodeName, java.lang.String nsURI, Environment env)
public static java.lang.String leftPad(java.lang.String s, int minLength)
s
- the string that will be padded.minLength
- the length to reach.public static java.lang.String leftPad(java.lang.String s, int minLength, char filling)
s
- the string that will be padded.minLength
- the length to reach.filling
- the filling pattern.public static java.lang.String leftPad(java.lang.String s, int minLength, java.lang.String filling)
leftPad('ABC', 9, '1234')
returns "123412ABC"
.s
- the string that will be padded.minLength
- the length to reach.filling
- the filling pattern. Must be at least 1 characters long.
Can't be null
.public static java.lang.String rightPad(java.lang.String s, int minLength)
s
- the string that will be padded.minLength
- the length to reach.public static java.lang.String rightPad(java.lang.String s, int minLength, char filling)
s
- the string that will be padded.minLength
- the length to reach.filling
- the filling pattern.public static java.lang.String rightPad(java.lang.String s, int minLength, java.lang.String filling)
rightPad('ABC', 9, '1234')
returns "ABC412341"
. Note that the filling pattern is
started as if you overlay "123412341"
with the left-aligned
"ABC"
, so it starts with "4"
.s
- the string that will be padded.minLength
- the length to reach.filling
- the filling pattern. Must be at least 1 characters long.
Can't be null
.public static int versionStringToInt(java.lang.String version)
public static java.lang.String tryToString(java.lang.Object object)
"[toString failed: " + e + "]"
instead.
Also, it return null
for null
parameter.