字符串常用方法
其他字符串工具还有:
| Modifiers | Name | Description |
|---|---|---|
static java.text.Collator |
collator |
用于本地语言(如中文)排序/比较的Collator |
| Type | Name and description |
|---|---|
static int |
FNVHash1(CharSequence data)改进的32位FNV算法1,给字符串生成一个Hash码 |
static String |
addUnderscores(String name)字符串转换:大写前面加_,大写改成小写 |
static int |
compare(String a, String b)字符串排序:顺序,支持中文 |
static String |
escapeXML(String text) |
static String |
escapeXml(String text)将 "<" 等字符转换成转义字如 "<" |
static String |
formatRevision(String revision, Integer sections, Integer numbers, Integer suffixNumbers = null, String defaultVer = '')格式化多段式的数字版本号 |
static String |
fromBase64(String s)解码 Base64 编码的字符串 |
static byte[] |
fromHex(String str)将十六进制的字符串转为 byte 数组 |
static String |
fromInputStream(java.io.InputStream is, String charset = "utf-8", Boolean close = false)将 InputStream 转成字符串 |
static Object |
fromJson(Object json)将 json 字符串转换成对象,同 JSON.parse(json) |
static T |
fromJson(Object json, Class<T> clazz, Map options = null)使用 Gson 将 json 字符串转换成对象 |
static String |
fromObject(Object obj)将一个对象序列化后编码为 Base64 字符串 |
static String |
fromXmlDocument(org.w3c.dom.Document dom, String charset = "UTF-8")将 org.w3c.dom.Document 转成字符串源码 |
static String |
getThrowableStackTrace(Throwable e, Boolean simple = false)将 Java 异常的堆栈信息格式化成字符串 |
static String |
getThrowableStacktrace(Throwable e, Boolean simple = false) |
static Integer |
length(String s)等同于lengthb |
static Integer |
lengthb(String s)计算字符串的字节长度,如中文算两个字符 |
static boolean |
like(String t, String p)类似 sql 里的 like 方法,判断 t 是否匹配 p |
static String |
md5(String s)计算字符串的MD5 |
static Object |
means(Object obj, Object nullVal = null, Object unmatchedVal = null)判断一个对象是否意味着true/false/null。 |
static groovy.util.Node |
parseXml(String xml)解析XML,并返回节点对象 |
static String |
prettifyJson(Object uglyJSONString)美化JSON代码 |
static String |
prettifyXml(String xml, Map options = null)美化XML代码 |
static String |
removeUnderscores(String name)字符串转换:_后的字母转成大写,删除_,其余全部转成小写 |
static String |
replace(String text, String searchString, String replacement)Replaces all occurrences of a String within another String. |
static String |
replaceEach(String text, String[] searchList, String[] replacementList)Replaces all occurrences of Strings within another String. |
static String |
replaceEach(String text, List<String> searchList, List<String> replacementList) |
static String |
replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)Replaces all occurrences of Strings within another String. |
static String |
replaceEachRepeatedly(String text, List<String> searchList, List<String> replacementList) |
static String |
simplifyRevision(String revsion)简化多段式的数字版本号,删除每段0前缀,如 001.001.001 简化后为 1.1.1 |
static String |
template(String templateText, Map binding)使用 GString 模板来渲染字符串 |
static String |
toBase64(String s, Boolean urlSafe = false)将字符串编码成 Base64 |
static String |
toHex(byte[] bytes)将 byte 数组转换为十六进制的字符串 |
static String |
toJson(Object source)将对象转换成 json 字符串,同 object.encodeAsJSON() |
static String |
toJson(Object source, Class clazz, Map options = null)使用 Gson 将对象转换成 json 字符串 |
static void |
toJson(Object source, java.io.OutputStream out, Map options = null)使用 Gson 的 streaming 方式,将对象转换成 json 字符串并直接输出到流中。 |
static Object |
toObject(String obj)将 Base64 字符串反序列化为对象 |
static String |
toUnicode(String str)将字符串转换成 UNICODE 编码 |
static String |
toXml(Object source, Map options = null)将对象转换成 xml 字符串,同 object.encodeAsXML() |
static org.w3c.dom.Document |
toXmlDocument(String xml)将字符串转成 org.w3c.dom.Document 文档对象 |
static String |
trimXml(String text)删除字符串中的 xml/html 标签 |
static String |
truncate(String s, Integer lengthb, String blabla = null)截断字符串,仅保留指定长度的字符,并且可以在截断的字符串后面再接上某些后缀(如省略号) |
static String |
uuid(String source = null)调用 java.util.UUID 生成一个大写的、36位的UUID |
static String |
uuid8()生成一个由大小写字母、数字等字符组成的、8位的UUID |
| Methods inherited from class | Name |
|---|---|
class Object |
Object#wait(long, int), Object#wait(long), Object#wait(), Object#equals(Object), Object#toString(), Object#hashCode(), Object#getClass(), Object#notify(), Object#notifyAll() |
改进的32位FNV算法1,给字符串生成一个Hash码
data - 字符串字符串转换:大写前面加_,大写改成小写
复制自:org.hibernate.cfg.ImprovedNamingStrategy
字符串排序:顺序,支持中文
将 "<" 等字符转换成转义字如 "<"
格式化多段式的数字版本号
version - 版本字符串sections - 段数,如3表示 x.y.znumbers - 每段的数字个数,不足用0补suffixNumbers - 最后一段的数字个数,不足用0补;如果为空,则等于numbersdefaultVer - 参数 version 为空时的返回值解码 Base64 编码的字符串
如果涉及到大数据的编解码,建议使用 FileUtils 中的 base64 相关方法,采用流的方式进行处理。
将十六进制的字符串转为 byte 数组
str - 形如 d9740256 的字符串将 InputStream 转成字符串
is - 输入流对象charset - 字符集,默认为 utf-8close - 转换完毕后,是否关闭流将 json 字符串转换成对象,同 JSON.parse(json)
json - 字符串、或 obj.encodeAsJSON() 的 JSON 对象,如果为其他类型的数据,则返回 null使用 Gson 将 json 字符串转换成对象
json - 类型为 CharSequence、InputStream(UTF-8)、Reader、JSON 等类型的 JSON 字符串clazz - 转换后的对象类型options.dateFormat - 设置日期格式,默认为 "yyyy-MM-dd'T'HH:mm:ss.SSSZ"options.integer - 若 clazz 为 Map/List/Object,数字类型的值会转成 Double(如 1 转成 1.0);如果设置为 true,则会返回为 Integer 或 Long 类型的数字。将一个对象序列化后编码为 Base64 字符串
将 org.w3c.dom.Document 转成字符串源码
dom - 文档对象charset - 字符集,默认为 "UTF-8",如果为空则取系统属性 file.encoding将 Java 异常的堆栈信息格式化成字符串
等同于lengthb
计算字符串的字节长度,如中文算两个字符
s - 需要计算的字符串类似 sql 里的 like 方法,判断 t 是否匹配 p
t - 要匹配的字符串,如 abcdp - 用于匹配的模式,其中 % 或 * 表示任意字符,如 a%d、a*d计算字符串的MD5
判断一个对象是否意味着true/false/null。
尤其是针对字符串形式的:不为0的数字、true、yes、y都表示真;0、false、no、n都表示假;空、undefined或null一般表示什么都不是。
这种判断一般出现在某些配置上,所以用了means这个名称。
obj - 需要判断的对象nullVal - 当obj为null、或表示空的字符串(''、null、undefined)时的返回值,默认为 nullunmatchedVal - 当obj是字符串,但不是真(1/true/yes/y等)、但也不是假(0/false/no/n)的时候,要返回的值,默认为 Boolean.TRUE解析XML,并返回节点对象
美化JSON代码
美化XML代码
options.lineWidth - 每行的宽度(字符数),默认为 120options.indentTab - 是否采用 tab 键缩进,默认为 trueoptions.indent - 缩进字符数,默认为 4,或者用 tab 键缩进字符串转换:_后的字母转成大写,删除_,其余全部转成小写
Replaces all occurrences of a String within another String.
和 Java 的 String.replace 方法的主要区别是不会抛出空指针异常,
参考:http://commons.apache.org/lang/api/org/apache/commons/lang3/StringUtils.html#replace%28java.lang.String,%20java.lang.String,%20java.lang.String%29
Replaces all occurrences of Strings within another String.
A null reference passed to this method is a no-op, or if any "search string" or "string to replace" is null, that replace will be ignored.
This will not repeat. For repeating replaces, call the replaceEachRepeatedly method.
参考:http://commons.apache.org/lang/api/org/apache/commons/lang3/StringUtils.html#replace%28java.lang.String,%20java.lang.String,%20java.lang.String%29
Replaces all occurrences of Strings within another String.
A null reference passed to this method is a no-op, or if any "search string" or "string to replace" is null, that replace will be ignored.
简化多段式的数字版本号,删除每段0前缀,如 001.001.001 简化后为 1.1.1
使用 GString 模板来渲染字符串
StringUtils.template('${x} ${y}', [x:1])}。templateText - 模板,如 'abc \$x \${y} 123'。注意定义模板时需用单引号,否则需要对 \$ 符号转义。binding - 数据,如 [x: 1, y: 2]。将字符串编码成 Base64
如果涉及到大数据的编解码,建议使用 FileUtils 中的 base64 相关方法,采用流的方式进行处理。
urlSafe - 采用 urlSafe 的模式进行编码。
即字符 “+/” 会被转换为 “-_”,避免解析 url 参数、cookie 值后数据不完整或无法解析。将 byte 数组转换为十六进制的字符串
bytes - 需要转换的 bytes,比如 [-39, 116, 2, 86]将对象转换成 json 字符串,同 object.encodeAsJSON()
日期格式默认为 "2019-11-08T00:14:11Z"。
使用 Gson 将对象转换成 json 字符串
options.disableHtmlEscaping - 是否不转换特殊的 HTML 字符为 “\u” 形式,默认不会转换(true)options.serializeNulls - 是否不删除值为 null 的键,默认不删除(true)options.dateFormat - 设置日期格式,默认为 "yyyy-MM-dd'T'HH:mm:ss.SSSZ"options.prettyPrint - 是否美化输出格式使用 Gson 的 streaming 方式,将对象转换成 json 字符串并直接输出到流中。
相对转换为字符串再输出,streaming 方式速度最快、并且基本不耗多少内存(以避免内存溢出)。
out - 输出流,如 FileOutputStream,输出后会自动关闭options.disableHtmlEscaping - 是否不转换特殊的 HTML 字符为 “\u” 形式,默认不会转换(true)options.serializeNulls - 是否不删除值为 null 的键,默认不删除(true)options.dateFormat - 设置日期格式,默认为 "yyyy-MM-dd'T'HH:mm:ss.SSSZ"将 Base64 字符串反序列化为对象
将字符串转换成 UNICODE 编码
将对象转换成 xml 字符串,同 object.encodeAsXML()
options.config - 装配器配置名称,如 map、map_propsoptions.prettyPrint - 是否美化输出格式,仅当使用 config 时有效options.tag - 根标签的名称,默认为 map,仅当 config 为 map 或 map_props 时有效将字符串转成 org.w3c.dom.Document 文档对象
删除字符串中的 xml/html 标签
截断字符串,仅保留指定长度的字符,并且可以在截断的字符串后面再接上某些后缀(如省略号)
s - 要处理的字符串lengthb - 目标的字节长度,中文算两个字符blabla - 截断后,要添加的后缀,如“...”,默认为空调用 java.util.UUID 生成一个大写的、36位的UUID
source - 只要源字符串相同,生成的UUID也一样;如果为空,则生成随机的UUID生成一个由大小写字母、数字等字符组成的、8位的UUID
相对 uuid 方法生成的字符串,不会非常严谨,因此不要用于唯一标识。