A comprehensive utility library for Light-4J microservices framework providing string manipulation, networking, I/O, security, and configuration utilities.
—
Comprehensive string processing utilities including validation, transformation, formatting, and pattern matching. These utilities provide null-safe operations and are designed for high-performance text processing in microservices environments.
The StringUtils class provides the main string manipulation functionality with 50+ methods for common string operations.
/**
* Comprehensive string manipulation utilities extracted from Apache Commons Lang
*/
public class StringUtils {
public static final int INDEX_NOT_FOUND = -1;
public static final String EMPTY = "";
public static final String SPACE = " ";
public static final String EMAIL_PATTERN = "..."; // Email validation regex
public static final Pattern pattern; // Compiled email pattern
// Basic checks
public static boolean isNullOrEmpty(String value);
public static boolean isEmpty(CharSequence cs);
public static boolean isBlank(CharSequence cs);
public static boolean isNotBlank(CharSequence cs);
public static boolean hasText(String str);
public static boolean hasLength(String str);
// String transformation
public static String expandEnvVars(String text);
public static String replace(String text, String searchString, String replacement, int max);
public static String replaceOnce(String text, String searchString, String replacement);
public static String rightPad(String str, int size, char padChar);
public static String rightPad(String str, int size, String padStr);
public static String repeat(char ch, int repeat);
public static String trimToEmpty(String str);
public static String removeEnd(String str, String remove);
public static String removeStart(String str, String remove);
public static String removeStartIgnoreCase(String str, String remove);
public static String stripEnd(String str, String stripChars);
// Substring operations
public static String substringBefore(String str, String separator);
public static String substringAfter(String str, String separator);
public static String substringBeforeLast(String str, String separator);
public static String substringAfterLast(String str, String separator);
// String analysis
public static int countMatches(CharSequence str, CharSequence sub);
public static int countMatches(CharSequence str, char ch);
public static boolean startsWithIgnoreCase(CharSequence str, CharSequence prefix);
public static boolean containsIgnoreCase(CharSequence str, CharSequence searchStr);
// Splitting and joining
public static String[] split(String str, String separatorChars);
public static String[] split(String str, char separatorChar);
public static String join(Object[] array, char separator);
public static String join(Object[] array, char separator, int startIndex, int endIndex);
public static String join(Iterator<?> iterator, char separator);
public static String join(Iterable<?> iterable, char separator);
public static String[] tokenizeToStringArray(String str, String delimiters);
public static String[] tokenizeToStringArray(String str, String delimiters, boolean trimTokens, boolean ignoreEmptyTokens);
public static String[] toStringArray(Collection<String> collection);
public static String collectionToDelimitedString(Collection<?> coll, String delim);
public static String collectionToDelimitedString(Collection<?> coll, String delim, String prefix, String suffix);
public static String collectionToCommaDelimitedString(Collection<?> coll);
// Validation
public static boolean isEmail(String userIdEmail);
public static boolean isNumeric(String str);
public static boolean isJwtToken(String str);
// Conversion
public static String inputStreamToString(InputStream inputStream, Charset charset);
// Security
public static String maskHalfString(String str);
// Pattern matching
public static boolean matchPathToPattern(String requestPath, String endpointPattern);
// Utility
public static String getSecondPart(String input);
}Usage Examples:
import com.networknt.utility.StringUtils;
// Basic validation
boolean isEmpty = StringUtils.isEmpty(""); // true
boolean isBlank = StringUtils.isBlank(" "); // true
boolean hasText = StringUtils.hasText("hello"); // true
// String cleaning
String cleaned = StringUtils.trimToEmpty(" hello world "); // "hello world"
String padded = StringUtils.rightPad("test", 10, '-'); // "test------"
// Environment variable expansion
String expanded = StringUtils.expandEnvVars("Hello ${USER}"); // "Hello john"
// Email validation
boolean validEmail = StringUtils.isEmail("user@example.com"); // true
// String splitting and joining
String[] parts = StringUtils.split("a,b,c", ","); // ["a", "b", "c"]
String joined = StringUtils.join(new String[]{"a", "b", "c"}, ','); // "a,b,c"
// Substring operations
String before = StringUtils.substringBefore("hello.world", "."); // "hello"
String after = StringUtils.substringAfter("hello.world", "."); // "world"
// Pattern matching for paths
boolean matches = StringUtils.matchPathToPattern("/api/users/123", "/api/users/{id}"); // trueNull-safe CharSequence operations for working with strings and other character sequences.
/**
* CharSequence operations that are null-safe
*/
public class CharSequenceUtils {
public CharSequenceUtils(); // JavaBean compatibility
/**
* Safe subsequence extraction
* @param cs - CharSequence to extract from
* @param start - Starting index
* @return Subsequence or null if cs is null
*/
public static CharSequence subSequence(CharSequence cs, int start);
}Character manipulation and validation utilities with ASCII checking and conversion operations.
/**
* Character manipulation and validation utilities
*/
public class CharUtils {
public static final char LF = '\n';
public static final char CR = '\r';
public static final char NUL = '\0';
public CharUtils(); // JavaBean compatibility
// Character conversion
public static Character toCharacterObject(char ch);
public static Character toCharacterObject(String str);
public static char toChar(Character ch, char defaultValue);
public static char toChar(String str, char defaultValue);
public static int toIntValue(char ch);
public static int toIntValue(Character ch);
public static String toString(char ch);
public static String toString(Character ch);
public static String unicodeEscaped(char ch);
public static String unicodeEscaped(Character ch);
// ASCII validation
public static boolean isAscii(char ch);
public static boolean isAsciiPrintable(char ch);
public static boolean isAsciiControl(char ch);
public static boolean isAsciiAlpha(char ch);
public static boolean isAsciiAlphaUpper(char ch);
public static boolean isAsciiAlphaLower(char ch);
public static boolean isAsciiNumeric(char ch);
public static boolean isAsciiAlphanumeric(char ch);
// Character comparison
public static int compare(char x, char y);
}Usage Examples:
import com.networknt.utility.CharUtils;
// Character validation
boolean isAlpha = CharUtils.isAsciiAlpha('A'); // true
boolean isNumeric = CharUtils.isAsciiNumeric('5'); // true
boolean isPrintable = CharUtils.isAsciiPrintable(' '); // true
// Character conversion
String unicode = CharUtils.unicodeEscaped('€'); // "\\u20AC"
int value = CharUtils.toIntValue('5'); // 53 (ASCII value)
// Safe character extraction
char safeChar = CharUtils.toChar("A", 'X'); // 'A'
char defaultChar = CharUtils.toChar("", 'X'); // 'X'Regular expression helpers for common string processing tasks with pattern-based operations.
/**
* Regular expression helpers for string processing
*/
public class RegExUtils {
// Pattern-based operations
public static String removeAll(String text, Pattern regex);
public static String removeAll(String text, String regex);
public static String removeFirst(String text, Pattern regex);
public static String removeFirst(String text, String regex);
public static String removePattern(String text, String regex);
// Replacement operations
public static String replaceAll(String text, Pattern regex, String replacement);
public static String replaceAll(String text, String regex, String replacement);
public static String replaceFirst(String text, Pattern regex, String replacement);
public static String replaceFirst(String text, String regex, String replacement);
public static String replacePattern(String text, String regex, String replacement);
}Usage Examples:
import com.networknt.utility.RegExUtils;
// Remove operations
String cleaned = RegExUtils.removeAll("abc123def456", "\\d+"); // "abcdef"
String first = RegExUtils.removeFirst("abc123def456", "\\d+"); // "abcdef456"
// Replace operations
String replaced = RegExUtils.replaceAll("hello world", "\\s+", "_"); // "hello_world"
String firstReplaced = RegExUtils.replaceFirst("test test test", "test", "demo"); // "demo test test"Byte array operations and random string generation for low-level data manipulation.
/**
* Byte array operations and random string generation
*/
public class ByteUtil {
// Byte array conversion
public static byte[] longToBytes(long x);
public static long bytesToLong(byte[] bytes);
// Random string generation
public static String randomAlphabetic(int length);
public static String randomNumeric(int length);
}Usage Examples:
import com.networknt.utility.ByteUtil;
// Byte array conversion
long value = 12345L;
byte[] bytes = ByteUtil.longToBytes(value);
long restored = ByteUtil.bytesToLong(bytes); // 12345
// Random string generation
String randomText = ByteUtil.randomAlphabetic(10); // "aBcDeFgHiJ"
String randomNumbers = ByteUtil.randomNumeric(6); // "123456"Install with Tessl CLI
npx tessl i tessl/maven-com-networknt--utility