StrUtil
Introduction
This tool is similar to StringUtil in Apache Commons Lang, the difference being that StrUtil is shorter and more通俗易懂. The commonly used methods such as isBlank, isNotBlank, isEmpty, isNotEmpty are not explained here, as they are straightforward for checking whether a string is empty or not. Instead, I will highlight some unique features below.
Methods
1. hasBlank and hasEmpty methods
Given a list of strings, these methods return true if any of the strings are empty or blank (e.g., for checking whether any fields in a web form are empty). The difference between the two methods is that hasEmpty only checks for null or an empty string ("") while hasBlank also includes invisible characters as empty.
2. removePrefix and removeSuffix methods
These methods are used to remove the prefix or suffix of a string, making it easier to handle file names, for example.
String fileName = StrUtil.removeSuffix("pretty_girl.jpg", ".jpg") //fileName -> pretty_girl
There are also versions that ignore case, removePrefixIgnoreCase and removeSuffixIgnoreCase, which are useful when dealing with strings.
3. sub method
This method is noteworthy as it provides additional functionality compared to the built-in substring method in Java. It allows you to specify negative indices, which means it can start from the end of the string. This functionality is borrowed from Python, making it convenient to handle substring operations. It also automatically corrects any confusion in the start and end indices to avoid exceptions.
For example:
String str = "abcdefgh";
String strSub1 = StrUtil.sub(str, 2, 3); //strSub1 -> c
String strSub2 = StrUtil.sub(str, 2, -3); //strSub2 -> cde
String strSub3 = StrUtil.sub(str, 3, 2); //strSub2 -> c
Please note that index -1 does not include the last character when using the sub method, so be careful when using it. If you want to obtain the substring starting from the last character to a certain position, it is recommended to use the subSuf method.
4. str and bytes methods
These methods wrap the Java standard library method String.getBytes(String charsetName) to provide additional functionality and error handling, as this method may throw an UnsupportedEncodingException. These methods allow you to specify the character set when converting a string to bytes or vice versa.
5. format method
This is my favorite method, as it provides a convenient string templating feature similar to that found in slf4j. It uses placeholders (e.g., {}) for variables in the template string and replaces them with the corresponding values passed as arguments when formatting the string. This allows you to easily create readable and maintainable log messages without worrying about string concatenation or handling exceptions related to unsupported encodings. It can handle multiple arguments and even objects that have their own toString() method.
6. Constants defined
For convenience, some common constants related to strings and HTML have been defined within this tool class, including dot, empty string, newline characters, and various HTML escape characters that may be commonly used in web development or data processing tasks.