Package com.cedarsoftware.util
Class StringUtilities
java.lang.Object
com.cedarsoftware.util.StringUtilities
Useful String utilities for common tasks
- Author:
- Ken Partlow, John DeRegnaucourt ([email protected])
Copyright (c) Cedar Software LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
License
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic int
count
(CharSequence content, CharSequence token) Count the number of times that 'token' occurs within 'content'.static int
static String
createString
(byte[] bytes, String encoding) Convert a byte[] into a String with a particular encoding.static String
createUtf8String
(byte[] bytes) Convert a byte[] into a UTF-8 String.static String
createUTF8String
(byte[] bytes) Convert a byte[] into a UTF-8 encoded String.static int
damerauLevenshteinDistance
(CharSequence source, CharSequence target) Calculate the Damerau-Levenshtein Distance between two strings.static byte[]
static String
encode
(byte[] bytes) Convert a byte array into a printable format containing a String of hex digit characters (two per byte).static boolean
equals
(CharSequence cs1, CharSequence cs2) Compares two CharSequences, returningtrue
if they represent equal sequences of characters.static boolean
static boolean
equalsIgnoreCase
(CharSequence cs1, CharSequence cs2) Compares two CharSequences, returningtrue
if they represent equal sequences of characters, ignoring case.static boolean
equalsIgnoreCase
(String s1, String s2) static boolean
equalsIgnoreCaseWithTrim
(String s1, String s2) static boolean
equalsWithTrim
(String s1, String s2) static byte[]
Convert a String into a byte[] with a particular encoding.static String
getRandomChar
(Random random, boolean upper) static String
getRandomString
(Random random, int minLen, int maxLen) static byte[]
Convert a String into a byte[] encoded by UTF-8.static boolean
hasContent
(String s) Checks if a String is not empty (""), not null and not whitespace only.static int
Get the hashCode of a String, insensitive to case, without any new Strings being created on the heap.static boolean
isEmpty
(CharSequence cs) Checks if a CharSequence is empty (""), null, or only whitespace.static boolean
static boolean
Checks if a CharSequence is empty (""), null or whitespace only.static int
lastIndexOf
(String path, char ch) static int
length
(CharSequence cs) Gets a CharSequence length or0
if the CharSequence isnull
.static int
static int
The Levenshtein distance is a string metric for measuring the difference between two sequences.static String
Removes control characters (char <= 32) from both ends of this String, handlingnull
by returningnull
.static String
trimEmptyToDefault
(String value, String defaultValue) Trims a string, If the string trims to empty then we return the default.static int
trimLength
(String s) static String
trimToEmpty
(String value) Trims a string, its null safe and null will return empty string here..static String
trimToNull
(String value) Trims a string, If the string trims to empty then we return null.static String
wildcardToRegexString
(String wildcard) Convert strings containing DOS-style '*' or '?' to a regex String.
-
Field Details
-
FOLDER_SEPARATOR
-
EMPTY
-
-
Method Details
-
equals
Compares two CharSequences, returningtrue
if they represent equal sequences of characters.null
s are handled without exceptions. Twonull
references are considered to be equal. The comparison is case-sensitive.- Parameters:
cs1
- the first CharSequence, may benull
cs2
- the second CharSequence, may benull
- Returns:
true
if the CharSequences are equal (case-sensitive), or bothnull
- See Also:
-
equals
- See Also:
-
equalsIgnoreCase
Compares two CharSequences, returningtrue
if they represent equal sequences of characters, ignoring case.null
s are handled without exceptions. Twonull
references are considered equal. The comparison is case insensitive.- Parameters:
cs1
- the first CharSequence, may benull
cs2
- the second CharSequence, may benull
- Returns:
true
if the CharSequences are equal (case-insensitive), or bothnull
- See Also:
-
equalsIgnoreCase
- See Also:
-
equalsWithTrim
-
equalsIgnoreCaseWithTrim
-
isEmpty
Checks if a CharSequence is empty (""), null, or only whitespace.- Parameters:
cs
- the CharSequence to check, may be null- Returns:
true
if the CharSequence is empty or null
-
isEmpty
- See Also:
-
isWhitespace
Checks if a CharSequence is empty (""), null or whitespace only.- Parameters:
cs
- the CharSequence to check, may be null- Returns:
true
if the CharSequence is null, empty or whitespace only
-
hasContent
Checks if a String is not empty (""), not null and not whitespace only.- Parameters:
s
- the CharSequence to check, may be null- Returns:
true
if the CharSequence is not empty and not null and not whitespace only
-
length
Gets a CharSequence length or0
if the CharSequence isnull
.- Parameters:
cs
- a CharSequence ornull
- Returns:
- CharSequence length or
0
if the CharSequence isnull
.
-
length
- See Also:
-
trimLength
- Parameters:
s
- a String ornull
- Returns:
- the trimmed length of the String or 0 if the string is null.
-
lastIndexOf
-
decode
-
encode
Convert a byte array into a printable format containing a String of hex digit characters (two per byte).- Parameters:
bytes
- array representation
-
count
-
count
Count the number of times that 'token' occurs within 'content'.- Returns:
- int count (0 if it never occurs, null is the source string, or null is the token).
-
wildcardToRegexString
Convert strings containing DOS-style '*' or '?' to a regex String. -
levenshteinDistance
The Levenshtein distance is a string metric for measuring the difference between two sequences. Informally, the Levenshtein distance between two words is the minimum number of single-character edits (i.e. insertions, deletions or substitutions) required to change one word into the other. The phrase 'edit distance' is often used to refer specifically to Levenshtein distance.- Parameters:
s
- String onet
- String two- Returns:
- the 'edit distance' (Levenshtein distance) between the two strings.
-
damerauLevenshteinDistance
Calculate the Damerau-Levenshtein Distance between two strings. The basic difference between this algorithm and the general Levenshtein algorithm is that damerau-Levenshtein counts a swap of two characters next to each other as 1 instead of 2. This breaks the 'triangular equality', which makes it unusable for Metric trees. See Wikipedia pages on both Levenshtein and Damerau-Levenshtein and then make your decision as to which algorithm is appropriate for your situation.- Parameters:
source
- Source input stringtarget
- Target input string- Returns:
- The number of substitutions it would take to make the source string identical to the target string
-
getRandomString
- Parameters:
random
- Random instanceminLen
- minimum number of charactersmaxLen
- maximum number of characters- Returns:
- String of alphabetical characters, with the first character uppercase (Proper case strings).
-
getRandomChar
-
getBytes
Convert a String into a byte[] with a particular encoding. Preferable used when the encoding is one of the guaranteed Java types and you don't want to have to catch the UnsupportedEncodingException required by Java- Parameters:
s
- string to encode into bytesencoding
- encoding to use
-
createUtf8String
Convert a byte[] into a UTF-8 String. Preferable used when the encoding is one of the guaranteed Java types and you don't want to have to catch the UnsupportedEncodingException required by Java- Parameters:
bytes
- bytes to encode into a string
-
getUTF8Bytes
Convert a String into a byte[] encoded by UTF-8.- Parameters:
s
- string to encode into bytes
-
createString
Convert a byte[] into a String with a particular encoding. Preferable used when the encoding is one of the guaranteed Java types and you don't want to have to catch the UnsupportedEncodingException required by Java- Parameters:
bytes
- bytes to encode into a stringencoding
- encoding to use
-
createUTF8String
Convert a byte[] into a UTF-8 encoded String.- Parameters:
bytes
- bytes to encode into a string
-
hashCodeIgnoreCase
Get the hashCode of a String, insensitive to case, without any new Strings being created on the heap.- Parameters:
s
- String input- Returns:
- int hashCode of input String insensitive to case
-
trim
Removes control characters (char <= 32) from both ends of this String, handlingnull
by returningnull
.The String is trimmed using
String.trim()
. Trim removes start and end characters <= 32.- Parameters:
str
- the String to be trimmed, may be null- Returns:
- the trimmed string,
null
if null String input
-
trimToEmpty
Trims a string, its null safe and null will return empty string here..- Parameters:
value
- string input- Returns:
- String trimmed string, if value was null this will be empty
-
trimToNull
Trims a string, If the string trims to empty then we return null.- Parameters:
value
- string input- Returns:
- String, trimmed from value. If the value was empty we return null.
-
trimEmptyToDefault
Trims a string, If the string trims to empty then we return the default.- Parameters:
value
- string inputdefaultValue
- value to return on empty or null- Returns:
- trimmed string, or defaultValue when null or empty
-