public class StringX extends Object implements CharConst, HtmlConst, StringConst, TextConst
C_BACKSLASH, C_BRACKET_END, C_BRACKET_START, C_COLON, C_COMMA, C_CR, C_DELIMITER_END, C_DELIMITER_START, C_DOT, C_LF, C_SLASH, C_SPACE, C_TAB, C_UNDERLINEHTML_AMP, HTML_GT, HTML_LT, HTML_NBSP, HTML_QUOTEBACKSLASH, BRACKET_END, BRACKET_START, COLON, COMMA, CR, CRLF, DELIM_END, DELIM_START, DOT, DOUBLE_DOT, EMPTY, INDEX_NOT_FOUND, LF, SLASH, SPACE, TAB, UNDERLINEEMPTY_JSON| 构造器和说明 |
|---|
StringX() |
| 限定符和类型 | 方法和说明 |
|---|---|
String |
addPrefixIfNot(String str,
String prefix)
如果给定字符串不是以prefix开头的,在开头补充 prefix
|
String |
addSuffixIfNot(String str,
String suffix)
如果给定字符串不是以suffix结尾的,在尾部补充 suffix
|
StringBuilder |
builder()
创建StringBuilder对象
|
StringBuilder |
builder(int capacity)
创建StringBuilder对象
|
StringBuilder |
builder(String... strs)
创建StringBuilder对象
|
ByteBuffer |
byteBuffer(String str,
String charset)
字符串转换为byteBuffer
|
byte[] |
bytes(String str)
编码字符串
使用系统默认编码 |
byte[] |
bytes(String str,
Charset charset)
编码字符串
|
byte[] |
bytes(String str,
String charset)
编码字符串
|
String |
cleanBlank(String str)
清理空白字符
|
boolean |
containsIgnoreCase(String str,
String testStr)
是否包含特定字符,忽略大小写,如果给定两个参数都为
null,返回true |
int |
count(String content,
char charForSearch)
统计指定内容中包含指定字符的数量
|
int |
count(String content,
String strForSearch)
统计指定内容中包含指定字符串的数量
参数为 null 或者 "" 返回 0. |
String |
emptyToNull(String str)
当给定字符串为空字符串时,转换为
null |
boolean |
endWith(String str,
String suffix,
boolean isIgnoreCase)
是否以指定字符串结尾
|
boolean |
endWithIgnoreCase(String str,
String suffix)
是否以指定字符串结尾,忽略大小写
|
boolean |
equals(String str1,
String str2)
比较两个字符串(大小写敏感)。
|
boolean |
equalsIgnoreCase(String str1,
String str2)
比较两个字符串(大小写不敏感)。
|
String |
format(String template,
Map<?,?> map)
格式化文本,使用 {varName} 占位
map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ----> aValue and bValue |
String |
format(String template,
Object... params)
格式化文本, {} 表示占位符
此方法只是简单将占位符 {} 按照顺序替换为参数 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可 例: 通常使用:format("this is {} for {}", "a", "b") -> this is a for b 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b |
StringReader |
getReader(String str)
获得StringReader
|
StringWriter |
getWriter()
获得StringWriter
|
boolean |
hasBlank(CharSequence... strs)
是否包含空字符串
|
boolean |
hasEmpty(CharSequence... strs)
是否包含空字符串
|
String |
indexedFormat(String pattern,
Object... arguments)
有序的格式化文本,使用{number}做为占位符
例: 通常使用:format("this is {0} for {1}", "a", "b") -> this is a for b |
boolean |
isAllBlank(CharSequence... strs)
给定所有字符串是否为空白
|
boolean |
isAllEmpty(CharSequence... strs)
是否全部为空字符串
|
boolean |
isBlank(CharSequence str)
字符串是否为空白 空白的定义如下:
1、为null 2、为不可见字符(如空格) 3、"" |
boolean |
isEmpty(CharSequence str)
字符串是否为空,空的定义如下 1、为null
2、为"" |
boolean |
isNotBlank(CharSequence str)
字符串是否为非空白 空白的定义如下:
1、不为null 2、不为不可见字符(如空格) 3、不为"" |
boolean |
isNotEmpty(CharSequence str)
字符串是否为非空白 空白的定义如下:
1、不为null 2、不为"" |
boolean |
isSurround(CharSequence str,
char prefix,
char suffix)
给定字符串是否被字符包围
|
boolean |
isSurround(String str,
String prefix,
String suffix)
给定字符串是否被字符包围
|
boolean |
isWrap(String str,
char wrapper)
指定字符串是否被同一字符包装(前后都有这些字符串)
|
boolean |
isWrap(String str,
char prefixChar,
char suffixChar)
指定字符串是否被包装
|
boolean |
isWrap(String str,
String wrapper)
指定字符串是否被同一字符包装(前后都有这些字符串)
|
boolean |
isWrap(String str,
String prefix,
String suffix)
指定字符串是否被包装
|
String |
lowerFIrstLetter(String str)
小写首字母
例如:str = Name, return name |
String |
nullToDefault(String str,
String defaultStr)
如果字符串是
null,则返回指定默认字符串,否则返回字符串本身。 |
String |
nullToEmpty(String str)
当给定字符串为null时,转换为Empty
|
String |
padEnd(String str,
int minLength,
char padChar)
补充字符串以满足最小长度 StringX.padEnd("1", 3, '0');//"100"
|
String |
padPre(String str,
int minLength,
char padChar)
补充字符串以满足最小长度 StringX.padPre("1", 3, '0');//"001"
|
String |
removeAll(String str,
CharSequence strToRemove)
移除字符串中所有给定字符串
例:removeAll("aa-bb-cc-dd", "-") -> aabbccdd |
String |
removePreAndLowerFirst(String str,
int preLength)
去掉首部指定长度的字符串并将剩余字符串首字母小写
例如:str=setName, preLength=3 -> return name |
String |
removePreAndLowerFirst(String str,
String prefix)
去掉首部指定长度的字符串并将剩余字符串首字母小写
例如:str=setName, prefix=set -> return name |
String |
removePrefix(String str,
String prefix)
去掉指定前缀
|
String |
removePrefixIgnoreCase(String str,
String prefix)
忽略大小写去掉指定前缀
|
String |
removeSufAndLowerFirst(String str,
String suffix)
去掉指定后缀,并小写首字母
|
String |
removeSuffix(String str,
String suffix)
去掉指定后缀
|
String |
removeSuffixIgnoreCase(String str,
String suffix)
忽略大小写去掉指定后缀
|
String |
repeat(char c,
int count)
重复某个字符
|
String |
repeat(String str,
int count)
重复某个字符串
|
List<String> |
split(String str,
char separator)
切分字符串
a#b#c -> [a,b,c] a##b#c -> [a,"",b,c] |
List<String> |
split(String str,
char separator,
int limit)
切分字符串
|
String[] |
split(String str,
int len)
根据给定长度,将给定字符串截取为多个部分
|
String[] |
split(String str,
String delimiter)
切分字符串
from jodd |
String[] |
splitToArray(String str,
char separator)
切分字符串
|
String[] |
splitToArray(String str,
char separator,
int limit)
切分字符串
|
boolean |
startWith(String str,
String prefix,
boolean isIgnoreCase)
是否以指定字符串开头
|
boolean |
startWithIgnoreCase(String str,
String prefix)
是否以指定字符串开头,忽略大小写
|
String |
str(byte[] data,
Charset charset)
解码字节码
|
String |
str(Byte[] data,
Charset charset)
解码字节码
|
String |
str(byte[] bytes,
String charset)
将byte数组转为字符串
|
String |
str(Byte[] bytes,
String charset)
将Byte数组转为字符串
|
String |
str(ByteBuffer data,
Charset charset)
将编码的byteBuffer数据转换为字符串
|
String |
str(ByteBuffer data,
String charset)
将编码的byteBuffer数据转换为字符串
|
String |
str(Object obj,
Charset charset)
将对象转为字符串
1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 |
String |
str(Object obj,
String charsetName)
将对象转为字符串
1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 |
String |
sub(String string,
int fromIndex,
int toIndex)
改进JDK subString
index从0开始计算,最后一个字符为-1 如果from和to位置一样,返回 "" 如果from或to为负数,则按照length从后向前数位置,如果绝对值大于字符串长度,则from归到0,to归到length 如果经过修正的index中from大于to,则互换from和to example: abcdefgh 2 3 -> c abcdefgh 2 -3 -> cde |
String |
subPre(String string,
int toIndex)
切割前部分
|
String |
subSuf(String string,
int fromIndex)
切割后部分
|
String |
toCamelCase(String name)
将下划线方式命名的字符串转换为驼峰式。
|
String |
toUnderlineCase(String camelCaseStr)
将驼峰式命名的字符串转换为下划线方式。
|
String |
trim(String str)
除去字符串头尾部的空白,如果字符串是
null,依然返回null。 |
void |
trim(String[] strs)
给定字符串数组全部做去首尾空格
|
String |
trim(String str,
int mode)
除去字符串头尾部的空白符,如果字符串是
null,依然返回null。 |
String |
trimEnd(String str)
除去字符串尾部的空白,如果字符串是
null,则返回null。 |
String |
trimStart(String str)
除去字符串头部的空白,如果字符串是
null,则返回null。 |
String |
upperFirstLetter(String str)
大写首字母
例如:str = name, return Name |
String |
upperFirstLetterAndAddPre(String str,
String preString)
原字符串首字母大写并在其首部添加指定字符串 例如:str=name, preString=get -> return getName
|
byte[] |
utf8Bytes(String str)
编码字符串,编码为UTF-8
|
String |
utf8Str(Object obj)
将对象转为字符串
1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 |
public boolean isBlank(CharSequence str)
str - 被检测的字符串public boolean isNotBlank(CharSequence str)
str - 被检测的字符串public boolean hasBlank(CharSequence... strs)
strs - 字符串列表public boolean isAllBlank(CharSequence... strs)
strs - 字符串public boolean isEmpty(CharSequence str)
str - 被检测的字符串public boolean isNotEmpty(CharSequence str)
str - 被检测的字符串public String nullToEmpty(String str)
str - 被转换的字符串public String nullToDefault(String str, String defaultStr)
null,则返回指定默认字符串,否则返回字符串本身。
nullToDefault(null, "default") = "default"
nullToDefault("", "default") = ""
nullToDefault(" ", "default") = " "
nullToDefault("bat", "default") = "bat"
str - 要转换的字符串defaultStr - 默认字符串public String emptyToNull(String str)
nullstr - 被转换的字符串public boolean hasEmpty(CharSequence... strs)
strs - 字符串列表public boolean isAllEmpty(CharSequence... strs)
strs - 字符串列表public String trim(String str)
null,依然返回null。
注意,和String.trim不同,此方法使用Character.isWhitespace 来判定空白, 因而可以除去英文字符集之外的其它空白,如中文空格。
trim(null) = null
trim("") = ""
trim(" ") = ""
trim("abc") = "abc"
trim(" abc ") = "abc"
str - 要处理的字符串null,则返回nullpublic void trim(String[] strs)
strs - 字符串数组public String trimStart(String str)
null,则返回null。
注意,和String.trim不同,此方法使用Character.isWhitespace 来判定空白, 因而可以除去英文字符集之外的其它空白,如中文空格。
trimStart(null) = null
trimStart("") = ""
trimStart("abc") = "abc"
trimStart(" abc") = "abc"
trimStart("abc ") = "abc "
trimStart(" abc ") = "abc "
str - 要处理的字符串null或结果字符串为"",则返回 nullpublic String trimEnd(String str)
null,则返回null。
注意,和String.trim不同,此方法使用Character.isWhitespace 来判定空白, 因而可以除去英文字符集之外的其它空白,如中文空格。
trimEnd(null) = null
trimEnd("") = ""
trimEnd("abc") = "abc"
trimEnd(" abc") = " abc"
trimEnd("abc ") = "abc"
trimEnd(" abc ") = " abc"
str - 要处理的字符串null或结果字符串为"",则返回 nullpublic String trim(String str, int mode)
null,依然返回null。str - 要处理的字符串mode - -1表示trimStart,0表示trim全部, 1表示trimEndnull,则返回nullpublic boolean startWith(String str, String prefix, boolean isIgnoreCase)
str - 被监测字符串prefix - 开头字符串isIgnoreCase - 是否忽略大小写public boolean startWithIgnoreCase(String str, String prefix)
str - 被监测字符串prefix - 开头字符串public boolean endWith(String str, String suffix, boolean isIgnoreCase)
str - 被监测字符串suffix - 结尾字符串isIgnoreCase - 是否忽略大小写public boolean endWithIgnoreCase(String str, String suffix)
str - 被监测字符串suffix - 结尾字符串public boolean containsIgnoreCase(String str, String testStr)
null,返回truestr - 被检测字符串testStr - 被测试是否包含的字符串public String removeAll(String str, CharSequence strToRemove)
str - 字符串strToRemove - 被移除的字符串public String removePreAndLowerFirst(String str, int preLength)
str - 被处理的字符串preLength - 去掉的长度public String removePreAndLowerFirst(String str, String prefix)
str - 被处理的字符串prefix - 前缀public String upperFirstLetterAndAddPre(String str, String preString)
str - 被处理的字符串preString - 添加的首部public String upperFirstLetter(String str)
str - 字符串public String lowerFIrstLetter(String str)
str - 字符串public String removePrefix(String str, String prefix)
str - 字符串prefix - 前缀public String removePrefixIgnoreCase(String str, String prefix)
str - 字符串prefix - 前缀public String removeSuffix(String str, String suffix)
str - 字符串suffix - 后缀public String removeSufAndLowerFirst(String str, String suffix)
str - 字符串suffix - 后缀public String removeSuffixIgnoreCase(String str, String suffix)
str - 字符串suffix - 后缀public String addPrefixIfNot(String str, String prefix)
str - 字符串prefix - 前缀public String addSuffixIfNot(String str, String suffix)
str - 字符串suffix - 后缀public String[] splitToArray(String str, char separator)
str - 被切分的字符串separator - 分隔符字符public List<String> split(String str, char separator)
str - 被切分的字符串separator - 分隔符字符public String[] splitToArray(String str, char separator, int limit)
str - 被切分的字符串separator - 分隔符字符limit - 限制分片数public List<String> split(String str, char separator, int limit)
str - 被切分的字符串separator - 分隔符字符limit - 限制分片数public String[] split(String str, String delimiter)
str - 被切分的字符串delimiter - 分隔符public String[] split(String str, int len)
str - 字符串len - 每一个小节的长度public String sub(String string, int fromIndex, int toIndex)
string - StringfromIndex - 开始的index(包括)toIndex - 结束的index(不包括)public String subPre(String string, int toIndex)
string - 字符串toIndex - 切割到的位置(不包括)public String subSuf(String string, int fromIndex)
string - 字符串fromIndex - 切割开始的位置(包括)public boolean isSurround(String str, String prefix, String suffix)
str - 字符串prefix - 前缀suffix - 后缀public boolean isSurround(CharSequence str, char prefix, char suffix)
str - 字符串prefix - 前缀suffix - 后缀public String repeat(char c, int count)
c - 被重复的字符count - 重复的数目public String repeat(String str, int count)
str - 被重复的字符count - 重复的数目public boolean equals(String str1, String str2)
equals(null, null) = true
equals(null, "abc") = false
equals("abc", null) = false
equals("abc", "abc") = true
equals("abc", "ABC") = false
str1 - 要比较的字符串1str2 - 要比较的字符串2null,则返回truepublic boolean equalsIgnoreCase(String str1, String str2)
equalsIgnoreCase(null, null) = true
equalsIgnoreCase(null, "abc") = false
equalsIgnoreCase("abc", null) = false
equalsIgnoreCase("abc", "abc") = true
equalsIgnoreCase("abc", "ABC") = true
str1 - 要比较的字符串1str2 - 要比较的字符串2null,则返回truepublic String indexedFormat(String pattern, Object... arguments)
pattern - 文本格式arguments - 参数public String format(String template, Object... params)
template - 文本模板,被替换的部分用 {} 表示params - 参数值public String format(String template, Map<?,?> map)
template - 文本模板,被替换的部分用 {key} 表示map - 参数值对public byte[] utf8Bytes(String str)
str - 字符串public byte[] bytes(String str)
str - 字符串public byte[] bytes(String str, String charset)
str - 字符串charset - 字符集,如果此字段为空,则解码的结果取决于平台public byte[] bytes(String str, Charset charset)
str - 字符串charset - 字符集,如果此字段为空,则解码的结果取决于平台public String utf8Str(Object obj)
obj - 对象public String str(Object obj, String charsetName)
obj - 对象charsetName - 字符集public String str(Object obj, Charset charset)
obj - 对象charset - 字符集public String str(byte[] bytes, String charset)
bytes - byte数组charset - 字符集public String str(byte[] data, Charset charset)
data - 字符串charset - 字符集,如果此字段为空,则解码的结果取决于平台public String str(Byte[] bytes, String charset)
bytes - byte数组charset - 字符集public String str(Byte[] data, Charset charset)
data - 字符串charset - 字符集,如果此字段为空,则解码的结果取决于平台public String str(ByteBuffer data, String charset)
data - 数据charset - 字符集,如果为空使用当前系统字符集public String str(ByteBuffer data, Charset charset)
data - 数据charset - 字符集,如果为空使用当前系统字符集public ByteBuffer byteBuffer(String str, String charset)
str - 字符串charset - 编码public String toUnderlineCase(String camelCaseStr)
camelCaseStr - 转换前的驼峰式命名的字符串public String toCamelCase(String name)
name - 转换前的下划线大写方式命名的字符串public boolean isWrap(String str, String prefix, String suffix)
str - 字符串prefix - 前缀suffix - 后缀public boolean isWrap(String str, String wrapper)
str - 字符串wrapper - 包装字符串public boolean isWrap(String str, char wrapper)
str - 字符串wrapper - 包装字符public boolean isWrap(String str, char prefixChar, char suffixChar)
str - 字符串prefixChar - 前缀suffixChar - 后缀public String padPre(String str, int minLength, char padChar)
str - 字符串minLength - 最小长度padChar - 补充的字符public String padEnd(String str, int minLength, char padChar)
str - 字符串minLength - 最小长度padChar - 补充的字符public StringBuilder builder()
public StringBuilder builder(int capacity)
public StringBuilder builder(String... strs)
public StringReader getReader(String str)
str - 字符串public StringWriter getWriter()
public int count(String content, String strForSearch)
null 或者 "" 返回 0.
StringX.count(null, *) = 0
StringX.count("", *) = 0
StringX.count("abba", null) = 0
StringX.count("abba", "") = 0
StringX.count("abba", "a") = 2
StringX.count("abba", "ab") = 1
StringX.count("abba", "xxx") = 0
content - 被查找的字符串strForSearch - 需要查找的字符串public int count(String content, char charForSearch)
content - 内容charForSearch - 被统计的字符Copyright © 2017. All rights reserved.