Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
C
common
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
曲欣亮
common
Commits
5b04f123
Commit
5b04f123
authored
Apr 14, 2019
by
张永
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
加个方法
parent
793adda4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1109 additions
and
1093 deletions
+1109
-1093
StringUtil.java
src/main/java/com/egolm/common/StringUtil.java
+1109
-1093
No files found.
src/main/java/com/egolm/common/StringUtil.java
View file @
5b04f123
package
com
.
egolm
.
common
;
package
com
.
egolm
.
common
;
import
java.io.BufferedReader
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.io.InputStreamReader
;
import
java.io.PrintWriter
;
import
java.io.PrintWriter
;
import
java.io.Reader
;
import
java.io.Reader
;
import
java.io.UnsupportedEncodingException
;
import
java.io.UnsupportedEncodingException
;
import
java.io.Writer
;
import
java.io.Writer
;
import
java.security.MessageDigest
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collection
;
import
java.util.Comparator
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
java.util.Map.Entry
;
import
java.util.TreeMap
;
import
java.util.TreeMap
;
import
java.util.UUID
;
import
java.util.UUID
;
import
java.util.regex.Matcher
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
java.util.regex.Pattern
;
import
javax.crypto.Mac
;
import
javax.crypto.Mac
;
import
javax.crypto.SecretKey
;
import
javax.crypto.SecretKey
;
import
javax.crypto.spec.SecretKeySpec
;
import
javax.crypto.spec.SecretKeySpec
;
import
org.apache.commons.codec.DecoderException
;
import
org.apache.commons.codec.DecoderException
;
import
org.apache.commons.codec.binary.Base64
;
import
org.apache.commons.codec.binary.Base64
;
import
org.apache.commons.codec.binary.Hex
;
import
org.apache.commons.codec.binary.Hex
;
import
com.egolm.common.exception.CharsetException
;
import
com.egolm.common.exception.CharsetException
;
import
com.egolm.common.exception.MD5Exception
;
import
com.egolm.common.exception.MD5Exception
;
import
com.egolm.common.exception.PluginException
;
import
com.egolm.common.exception.PluginException
;
import
com.egolm.common.exception.ReflectException
;
import
com.egolm.common.exception.ReflectException
;
import
com.egolm.common.exception.SHA1Exception
;
import
com.egolm.common.exception.SHA1Exception
;
import
net.sourceforge.pinyin4j.PinyinHelper
;
import
net.sourceforge.pinyin4j.PinyinHelper
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinCaseType
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinCaseType
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinToneType
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinToneType
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinVCharType
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinVCharType
;
import
net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination
;
import
net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination
;
/**
/**
*
*
* @Description 字符串工具类
* @Description 字符串工具类
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
*/
*/
public
class
StringUtil
{
public
class
StringUtil
{
public
static
String
join
(
Map
<
String
,
Object
>
map
,
String
sign
,
String
before
,
String
after
,
String
joinKey
)
{
public
static
String
join
(
Map
<
String
,
Object
>
map
,
String
sign
,
String
before
,
String
after
,
String
joinKey
)
{
sign
=
sign
==
null
?
""
:
sign
;
sign
=
sign
==
null
?
""
:
sign
;
before
=
before
==
null
?
""
:
before
;
before
=
before
==
null
?
""
:
before
;
after
=
after
==
null
?
""
:
after
;
after
=
after
==
null
?
""
:
after
;
List
<
String
>
strs
=
new
ArrayList
<
String
>();
List
<
String
>
strs
=
new
ArrayList
<
String
>();
for
(
String
key
:
map
.
keySet
())
{
for
(
String
key
:
map
.
keySet
())
{
StringBuffer
sbuffer
=
new
StringBuffer
();
StringBuffer
sbuffer
=
new
StringBuffer
();
sbuffer
.
append
(
key
).
append
(
joinKey
);
sbuffer
.
append
(
key
).
append
(
joinKey
);
sbuffer
.
append
(
StringUtil
.
format
(
map
.
get
(
key
)));
sbuffer
.
append
(
StringUtil
.
format
(
map
.
get
(
key
)));
strs
.
add
(
sbuffer
.
toString
());
strs
.
add
(
sbuffer
.
toString
());
}
}
return
StringUtil
.
join
(
sign
,
before
,
after
,
strs
);
return
StringUtil
.
join
(
sign
,
before
,
after
,
strs
);
}
}
public
static
String
join
(
String
sign
,
Collection
<
String
>
strs
)
{
public
static
String
join
(
String
sign
,
Collection
<
String
>
strs
)
{
return
join
(
sign
,
""
,
""
,
strs
.
toArray
(
new
String
[
strs
.
size
()]));
return
join
(
sign
,
""
,
""
,
strs
.
toArray
(
new
String
[
strs
.
size
()]));
}
}
/**
/**
*
*
* @Description 连接字符串
* @Description 连接字符串
* @param sign 连接符
* @param sign 连接符
* @param before 前置字符串
* @param before 前置字符串
* @param strs 要连接的字符串集合
* @param strs 要连接的字符串集合
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
join
(
String
sign
,
String
before
,
Collection
<
String
>
strs
)
{
public
static
String
join
(
String
sign
,
String
before
,
Collection
<
String
>
strs
)
{
return
join
(
sign
,
before
,
""
,
strs
.
toArray
(
new
String
[
strs
.
size
()]));
return
join
(
sign
,
before
,
""
,
strs
.
toArray
(
new
String
[
strs
.
size
()]));
}
}
/**
/**
*
*
* @Description 连接字符串
* @Description 连接字符串
* @param sign 连接符
* @param sign 连接符
* @param before 前置字符串
* @param before 前置字符串
* @param after 后置字符串
* @param after 后置字符串
* @param strs 要连接的字符串集合
* @param strs 要连接的字符串集合
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月24日
* @date 2016年4月24日
* @since 2016年4月24日
* @since 2016年4月24日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
join
(
String
sign
,
String
before
,
String
after
,
String
...
strs
)
{
public
static
String
join
(
String
sign
,
String
before
,
String
after
,
String
...
strs
)
{
return
StringUtil
.
join
(
sign
,
before
,
after
,
""
,
strs
);
return
StringUtil
.
join
(
sign
,
before
,
after
,
""
,
strs
);
}
}
public
static
String
join
(
String
sign
,
String
before
,
String
after
,
String
def
,
String
[]
strs
)
{
public
static
String
join
(
String
sign
,
String
before
,
String
after
,
String
def
,
String
[]
strs
)
{
if
(
strs
==
null
||
strs
.
length
==
0
||
StringUtil
.
isEmptyAll
((
Object
[])
strs
))
{
if
(
strs
==
null
||
strs
.
length
==
0
||
StringUtil
.
isEmptyAll
((
Object
[])
strs
))
{
return
StringUtil
.
isEmpty
(
def
)
?
""
:
def
;
return
StringUtil
.
isEmpty
(
def
)
?
""
:
def
;
}
else
{
}
else
{
StringBuffer
sb
=
new
StringBuffer
(
""
);
StringBuffer
sb
=
new
StringBuffer
(
""
);
for
(
int
i
=
0
;
i
<
strs
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
strs
.
length
;
i
++)
{
String
str
=
String
.
valueOf
(
strs
[
i
]);
String
str
=
String
.
valueOf
(
strs
[
i
]);
sb
.
append
((
i
==
0
&&
before
!=
null
)
?
before
:
""
).
append
(
str
==
null
?
""
:
str
).
append
(
i
<
strs
.
length
-
1
?
(
sign
==
null
?
""
:
sign
)
:
""
).
append
((
i
==
strs
.
length
-
1
&&
after
!=
null
)
?
after
:
""
);
sb
.
append
((
i
==
0
&&
before
!=
null
)
?
before
:
""
).
append
(
str
==
null
?
""
:
str
).
append
(
i
<
strs
.
length
-
1
?
(
sign
==
null
?
""
:
sign
)
:
""
).
append
((
i
==
strs
.
length
-
1
&&
after
!=
null
)
?
after
:
""
);
}
}
return
String
.
valueOf
(
sb
);
return
String
.
valueOf
(
sb
);
}
}
}
}
/**
/**
*
*
* @Description 连接字符串
* @Description 连接字符串
* @param sign 连接符
* @param sign 连接符
* @param before 前置字符串
* @param before 前置字符串
* @param after 后置字符串
* @param after 后置字符串
* @param strs 要连接的字符串的集合
* @param strs 要连接的字符串的集合
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
join
(
String
sign
,
String
before
,
String
after
,
Collection
<
String
>
strs
)
{
public
static
String
join
(
String
sign
,
String
before
,
String
after
,
Collection
<
String
>
strs
)
{
return
StringUtil
.
join
(
sign
,
before
,
after
,
strs
.
toArray
(
new
String
[
strs
.
size
()]));
return
StringUtil
.
join
(
sign
,
before
,
after
,
strs
.
toArray
(
new
String
[
strs
.
size
()]));
}
}
public
static
String
join
(
String
sign
,
String
before
,
String
after
,
String
def
,
Collection
<
String
>
strs
)
{
public
static
String
join
(
String
sign
,
String
before
,
String
after
,
String
def
,
Collection
<
String
>
strs
)
{
return
StringUtil
.
join
(
sign
,
before
,
after
,
def
,
strs
.
toArray
(
new
String
[
strs
.
size
()]));
return
StringUtil
.
join
(
sign
,
before
,
after
,
def
,
strs
.
toArray
(
new
String
[
strs
.
size
()]));
}
}
/**
/**
*
*
* @Description 连接字符串
* @Description 连接字符串
* @param str 要链接的字符串
* @param str 要链接的字符串
* @param sign 连接符
* @param sign 连接符
* @param count 链接的次数
* @param count 链接的次数
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
join
(
String
str
,
String
sign
,
int
count
)
{
public
static
String
join
(
String
str
,
String
sign
,
int
count
)
{
return
StringUtil
.
join
(
str
,
sign
,
count
,
""
,
""
);
return
StringUtil
.
join
(
str
,
sign
,
count
,
""
,
""
);
}
}
/**
/**
*
*
* @Description 连接字符串
* @Description 连接字符串
* @param str 要链接的字符串
* @param str 要链接的字符串
* @param sign 连接符
* @param sign 连接符
* @param count 链接次数
* @param count 链接次数
* @param before 前置字符串
* @param before 前置字符串
* @param after 后置字符串
* @param after 后置字符串
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
join
(
String
str
,
String
sign
,
int
count
,
String
before
,
String
after
)
{
public
static
String
join
(
String
str
,
String
sign
,
int
count
,
String
before
,
String
after
)
{
if
(
str
==
null
||
count
==
0
)
{
if
(
str
==
null
||
count
==
0
)
{
return
""
;
return
""
;
}
else
{
}
else
{
StringBuffer
sb
=
new
StringBuffer
(
""
);
StringBuffer
sb
=
new
StringBuffer
(
""
);
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
sb
.
append
(
i
==
0
&&
before
!=
null
?
before
:
""
).
append
(
str
).
append
(
i
<
count
-
1
?
(
sign
==
null
?
""
:
sign
)
:
""
).
append
(
i
==
count
-
1
&&
after
!=
null
?
after
:
""
);
sb
.
append
(
i
==
0
&&
before
!=
null
?
before
:
""
).
append
(
str
).
append
(
i
<
count
-
1
?
(
sign
==
null
?
""
:
sign
)
:
""
).
append
(
i
==
count
-
1
&&
after
!=
null
?
after
:
""
);
}
}
return
String
.
valueOf
(
sb
);
return
String
.
valueOf
(
sb
);
}
}
}
}
/**
/**
*
*
* @Description 判断字符串数组是否包含特定字符串
* @Description 判断字符串数组是否包含特定字符串
* @param arry 要判断的字符串数组
* @param arry 要判断的字符串数组
* @param arg 要找的目标字符串
* @param arg 要找的目标字符串
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @return boolean
* @throws
* @throws
*/
*/
public
static
boolean
contains
(
String
[]
arry
,
String
arg
)
{
public
static
boolean
contains
(
String
[]
arry
,
String
arg
)
{
for
(
String
str
:
arry
)
{
for
(
String
str
:
arry
)
{
if
(
arg
!=
null
&&
arg
.
equals
(
str
))
{
if
(
arg
!=
null
&&
arg
.
equals
(
str
))
{
return
true
;
return
true
;
}
else
if
(
arg
==
null
&&
str
==
null
)
{
}
else
if
(
arg
==
null
&&
str
==
null
)
{
return
true
;
return
true
;
}
}
}
}
return
false
;
return
false
;
}
}
/**
/**
*
*
* @Description 判断字符串是否是整数
* @Description 判断字符串是否是整数
* @param val
* @param val
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @return boolean
* @throws
* @throws
*/
*/
public
static
boolean
isInt
(
String
val
)
{
public
static
boolean
isInt
(
String
val
)
{
String
regex
=
"^-?\\d+$"
;
String
regex
=
"^-?\\d+$"
;
return
matcher
(
val
,
regex
);
return
matcher
(
val
,
regex
);
}
}
/**
/**
*
*
* @Description 判断字符串是否是浮点数
* @Description 判断字符串是否是浮点数
* @param val
* @param val
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @return boolean
* @throws
* @throws
*/
*/
public
static
boolean
isFloat
(
String
val
)
{
public
static
boolean
isFloat
(
String
val
)
{
String
regex
=
"^(-?\\d+)(\\.\\d+)?$"
;
String
regex
=
"^(-?\\d+)(\\.\\d+)?$"
;
return
matcher
(
val
,
regex
);
return
matcher
(
val
,
regex
);
}
}
/**
/**
*
*
* @Description 判断字符串是否是日期
* @Description 判断字符串是否是日期
* @param val
* @param val
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @return boolean
* @throws
* @throws
*/
*/
public
static
boolean
isDate
(
String
val
)
{
public
static
boolean
isDate
(
String
val
)
{
String
regex
=
"^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1][0-9])|([2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$"
;
String
regex
=
"^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1][0-9])|([2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$"
;
return
matcher
(
val
,
regex
);
return
matcher
(
val
,
regex
);
}
}
/**
/**
*
*
* @Description 判断字符串是否是IP地址
* @Description 判断字符串是否是IP地址
* @param ip
* @param ip
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @return boolean
* @throws
* @throws
*/
*/
public
static
boolean
isIp
(
String
ip
)
{
public
static
boolean
isIp
(
String
ip
)
{
String
regex
=
"(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})"
;
String
regex
=
"(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})"
;
return
matcher
(
ip
,
regex
);
return
matcher
(
ip
,
regex
);
}
}
/**
/**
*
*
* @Description 正则表达式验证字符串
* @Description 正则表达式验证字符串
* @param val 目标字符串
* @param val 目标字符串
* @param regex 正则表达式
* @param regex 正则表达式
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @return boolean
* @throws
* @throws
*/
*/
public
static
boolean
matcher
(
String
val
,
String
regex
)
{
public
static
boolean
matcher
(
String
val
,
String
regex
)
{
Pattern
p
=
Pattern
.
compile
(
regex
);
Pattern
p
=
Pattern
.
compile
(
regex
);
Matcher
m
=
p
.
matcher
(
val
);
Matcher
m
=
p
.
matcher
(
val
);
return
m
.
matches
();
return
m
.
matches
();
}
}
/**
/**
* 只要有一个不为空,就返回true
* 只要有一个不为空,就返回true
* @param objs
* @param objs
* @return
* @return
*/
*/
public
static
boolean
isNotEmptyOne
(
Object
...
objs
)
{
public
static
boolean
isNotEmptyOne
(
Object
...
objs
)
{
for
(
Object
obj
:
objs
)
{
for
(
Object
obj
:
objs
)
{
if
(
StringUtil
.
isNotEmpty
(
obj
))
{
if
(
StringUtil
.
isNotEmpty
(
obj
))
{
return
true
;
return
true
;
}
}
}
}
return
false
;
return
false
;
}
}
public
static
boolean
isEmptyAll
(
Object
...
objs
)
{
public
static
boolean
isEmptyAll
(
Object
...
objs
)
{
for
(
Object
obj
:
objs
)
{
for
(
Object
obj
:
objs
)
{
if
(
StringUtil
.
isNotEmpty
(
obj
))
{
if
(
StringUtil
.
isNotEmpty
(
obj
))
{
return
false
;
return
false
;
}
}
}
}
return
true
;
return
true
;
}
}
/**
/**
*
*
* @Description 判断字符串是否为空
* @Description 判断字符串是否为空
* @param obj
* @param obj
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean obj==null或obj==""返回true否则返回false
* @return boolean obj==null或obj==""返回true否则返回false
* @throws
* @throws
*/
*/
public
static
boolean
isEmpty
(
Object
obj
)
{
public
static
boolean
isEmpty
(
Object
obj
)
{
if
(
obj
==
null
||
""
.
equals
(
String
.
valueOf
(
obj
)))
{
if
(
obj
==
null
||
""
.
equals
(
String
.
valueOf
(
obj
)))
{
return
true
;
return
true
;
}
else
{
}
else
{
return
false
;
return
false
;
}
}
}
}
/**
/**
*
*
* @Description 判断字符串是否是undefined或null
* @Description 判断字符串是否是undefined或null
* @param objs
* @param objs
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean 全部对象都不是null和"undefined"和"null"返回true否则返回false
* @return boolean 全部对象都不是null和"undefined"和"null"返回true否则返回false
* @throws
* @throws
*/
*/
public
static
boolean
isNotUndefinedAndNull
(
Object
...
objs
)
{
public
static
boolean
isNotUndefinedAndNull
(
Object
...
objs
)
{
if
(
objs
==
null
||
objs
.
length
==
0
)
{
if
(
objs
==
null
||
objs
.
length
==
0
)
{
return
false
;
return
false
;
}
else
{
}
else
{
for
(
Object
obj
:
objs
)
{
for
(
Object
obj
:
objs
)
{
String
objStr
=
String
.
valueOf
(
obj
).
toLowerCase
();
String
objStr
=
String
.
valueOf
(
obj
).
toLowerCase
();
if
(
obj
==
null
||
"undefined"
.
equals
(
objStr
)
||
"null"
.
equals
(
objStr
))
{
if
(
obj
==
null
||
"undefined"
.
equals
(
objStr
)
||
"null"
.
equals
(
objStr
))
{
return
false
;
return
false
;
}
}
}
}
return
true
;
return
true
;
}
}
}
}
/**
/**
*
*
* @Description 判断对象是否是undefined或null
* @Description 判断对象是否是undefined或null
* @param obj
* @param obj
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean obj==null,obj=="undefined",obj=="null" 返回true否则返回false
* @return boolean obj==null,obj=="undefined",obj=="null" 返回true否则返回false
* @throws
* @throws
*/
*/
public
static
boolean
isUndefinedOrNull
(
Object
obj
)
{
public
static
boolean
isUndefinedOrNull
(
Object
obj
)
{
String
objStr
=
String
.
valueOf
(
obj
).
toLowerCase
();
String
objStr
=
String
.
valueOf
(
obj
).
toLowerCase
();
if
(
obj
==
null
||
"undefined"
.
equals
(
objStr
)
||
"null"
.
equals
(
objStr
))
{
if
(
obj
==
null
||
"undefined"
.
equals
(
objStr
)
||
"null"
.
equals
(
objStr
))
{
return
true
;
return
true
;
}
else
{
}
else
{
return
false
;
return
false
;
}
}
}
}
/**
/**
*
*
* @Description 判断一个或多个字符串是否非空
* @Description 判断一个或多个字符串是否非空
* @param objs
* @param objs
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean 全部字符串都不为null和空字符串返回true否则返回false
* @return boolean 全部字符串都不为null和空字符串返回true否则返回false
* @throws
* @throws
*/
*/
public
static
boolean
isNotEmpty
(
Object
...
objs
)
{
public
static
boolean
isNotEmpty
(
Object
...
objs
)
{
if
(
objs
==
null
||
objs
.
length
==
0
)
{
if
(
objs
==
null
||
objs
.
length
==
0
)
{
return
false
;
return
false
;
}
else
{
}
else
{
for
(
Object
obj
:
objs
)
{
for
(
Object
obj
:
objs
)
{
if
(
obj
==
null
||
""
.
equals
(
String
.
valueOf
(
obj
)))
{
if
(
obj
==
null
||
""
.
equals
(
String
.
valueOf
(
obj
)))
{
return
false
;
return
false
;
}
}
}
}
return
true
;
return
true
;
}
}
}
}
/**
/**
*
*
* @Description 判断一个字符串是否是空白的(包括空格、换行、制表符)
* @Description 判断一个字符串是否是空白的(包括空格、换行、制表符)
* @param obj
* @param obj
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @return boolean
* @throws
* @throws
*/
*/
public
static
boolean
isBlank
(
Object
obj
)
{
public
static
boolean
isBlank
(
Object
obj
)
{
if
(
obj
==
null
||
String
.
valueOf
(
obj
).
trim
().
length
()
==
0
)
{
if
(
obj
==
null
||
String
.
valueOf
(
obj
).
trim
().
length
()
==
0
)
{
return
true
;
return
true
;
}
else
{
}
else
{
return
false
;
return
false
;
}
}
}
}
/**
/**
*
*
* @Description 判断一个或多个字符串是否是空白的(包括空格、换行、制表符)
* @Description 判断一个或多个字符串是否是空白的(包括空格、换行、制表符)
* @param objs
* @param objs
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return boolean 全部不为空白时返回true 否则只要有一个是空白的就返回false
* @return boolean 全部不为空白时返回true 否则只要有一个是空白的就返回false
* @throws
* @throws
*/
*/
public
static
boolean
isNotBlank
(
Object
...
objs
)
{
public
static
boolean
isNotBlank
(
Object
...
objs
)
{
if
(
objs
==
null
||
objs
.
length
==
0
)
{
if
(
objs
==
null
||
objs
.
length
==
0
)
{
return
false
;
return
false
;
}
else
{
}
else
{
for
(
Object
obj
:
objs
)
{
for
(
Object
obj
:
objs
)
{
if
(
obj
==
null
||
String
.
valueOf
(
obj
).
trim
().
length
()
==
0
)
{
if
(
obj
==
null
||
String
.
valueOf
(
obj
).
trim
().
length
()
==
0
)
{
return
false
;
return
false
;
}
}
}
}
return
true
;
return
true
;
}
}
}
}
/**
/**
*
*
* @Description 截取字符串
* @Description 截取字符串
* @param string 被截取的字符串
* @param string 被截取的字符串
* @param from 开始点子串
* @param from 开始点子串
* @param to 结束点子串
* @param to 结束点子串
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
substring
(
String
string
,
String
from
,
String
to
)
{
public
static
String
substring
(
String
string
,
String
from
,
String
to
)
{
return
string
.
substring
(
string
.
indexOf
(
from
)
+
from
.
length
(),
string
.
lastIndexOf
(
to
));
return
string
.
substring
(
string
.
indexOf
(
from
)
+
from
.
length
(),
string
.
lastIndexOf
(
to
));
}
}
/**
/**
*
*
* @Description 获取字符串的字节长度
* @Description 获取字符串的字节长度
* @param string
* @param string
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return int
* @return int
* @throws
* @throws
*/
*/
public
static
int
bytesLength
(
String
string
)
{
public
static
int
bytesLength
(
String
string
)
{
int
length
=
0
;
int
length
=
0
;
for
(
int
i
=
0
;
i
<
string
.
length
();
i
++)
{
for
(
int
i
=
0
;
i
<
string
.
length
();
i
++)
{
if
(
new
String
(
string
.
charAt
(
i
)
+
""
).
getBytes
().
length
>
1
)
{
if
(
new
String
(
string
.
charAt
(
i
)
+
""
).
getBytes
().
length
>
1
)
{
length
+=
2
;
length
+=
2
;
}
else
{
}
else
{
length
+=
1
;
length
+=
1
;
}
}
}
}
return
length
/
2
;
return
length
/
2
;
}
}
/**
/**
*
*
* @Description 获取字符的ASCII码
* @Description 获取字符的ASCII码
* @param c
* @param c
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return int
* @return int
* @throws
* @throws
*/
*/
public
static
int
toAscii
(
char
c
)
{
public
static
int
toAscii
(
char
c
)
{
try
{
try
{
byte
[]
bytes
=
String
.
valueOf
(
c
).
getBytes
(
"gb2312"
);
byte
[]
bytes
=
String
.
valueOf
(
c
).
getBytes
(
"gb2312"
);
if
(
bytes
.
length
==
1
)
{
if
(
bytes
.
length
==
1
)
{
return
bytes
[
0
];
return
bytes
[
0
];
}
else
if
(
bytes
.
length
==
2
)
{
}
else
if
(
bytes
.
length
==
2
)
{
int
hightByte
=
256
+
bytes
[
0
];
int
hightByte
=
256
+
bytes
[
0
];
int
lowByte
=
256
+
bytes
[
1
];
int
lowByte
=
256
+
bytes
[
1
];
return
(
256
*
hightByte
+
lowByte
)
-
256
*
256
;
return
(
256
*
hightByte
+
lowByte
)
-
256
*
256
;
}
else
{
}
else
{
return
0
;
return
0
;
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
ReflectException
(
e
);
throw
new
ReflectException
(
e
);
}
}
}
}
/**
/**
*
*
* @Description 获取汉字词组拼音简写
* @Description 获取汉字词组拼音简写
* @param str
* @param str
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String 返回小写拼音
* @return String 返回小写拼音
* @throws
* @throws
*/
*/
public
static
String
simplePinyin
(
String
str
)
{
public
static
String
simplePinyin
(
String
str
)
{
if
(
StringUtil
.
isNotEmpty
(
str
))
{
if
(
StringUtil
.
isNotEmpty
(
str
))
{
StringBuffer
sbuffer
=
new
StringBuffer
();
StringBuffer
sbuffer
=
new
StringBuffer
();
for
(
char
c
:
str
.
toCharArray
())
{
for
(
char
c
:
str
.
toCharArray
())
{
sbuffer
.
append
(
StringUtil
.
firstPinyin
(
String
.
valueOf
(
c
)));
sbuffer
.
append
(
StringUtil
.
firstPinyin
(
String
.
valueOf
(
c
)));
}
}
return
String
.
valueOf
(
sbuffer
);
return
String
.
valueOf
(
sbuffer
);
}
else
{
}
else
{
return
""
;
return
""
;
}
}
}
}
/**
/**
*
*
* @Description 获取汉字词组拼音简写
* @Description 获取汉字词组拼音简写
* @param str
* @param str
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String 返回大写拼音
* @return String 返回大写拼音
* @throws
* @throws
*/
*/
public
static
String
SimplePinyin
(
String
str
)
{
public
static
String
SimplePinyin
(
String
str
)
{
return
simplePinyin
(
str
).
toUpperCase
();
return
simplePinyin
(
str
).
toUpperCase
();
}
}
public
static
String
[]
PinyinKAnalyzer
(
String
str
,
Integer
minLength
,
Integer
maxLength
)
{
public
static
String
[]
PinyinKAnalyzer
(
String
str
,
Integer
minLength
,
Integer
maxLength
)
{
List
<
String
>
list
=
new
ArrayList
<
String
>();
List
<
String
>
list
=
new
ArrayList
<
String
>();
for
(
int
i
=
0
;
i
<
str
.
length
();
i
++)
{
for
(
int
i
=
0
;
i
<
str
.
length
();
i
++)
{
for
(
int
n
=
i
;
n
<
str
.
length
();
n
++)
{
for
(
int
n
=
i
;
n
<
str
.
length
();
n
++)
{
Integer
length
=
n
+
1
-
i
;
Integer
length
=
n
+
1
-
i
;
if
(
length
>=
minLength
&&
maxLength
>=
length
)
{
if
(
length
>=
minLength
&&
maxLength
>=
length
)
{
list
.
add
(
str
.
substring
(
i
,
n
+
1
));
list
.
add
(
str
.
substring
(
i
,
n
+
1
));
}
}
}
}
}
}
return
list
.
toArray
(
new
String
[
list
.
size
()]);
return
list
.
toArray
(
new
String
[
list
.
size
()]);
}
}
/**
/**
*
*
* @Description 获取中文字符串的全拼
* @Description 获取中文字符串的全拼
* @param str
* @param str
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String 返回小写拼音
* @return String 返回小写拼音
* @throws
* @throws
*/
*/
public
static
String
fullPinyin
(
String
src
)
{
public
static
String
fullPinyin
(
String
src
)
{
char
[]
t1
=
null
;
char
[]
t1
=
null
;
t1
=
src
.
toCharArray
();
t1
=
src
.
toCharArray
();
String
[]
t2
=
new
String
[
t1
.
length
];
String
[]
t2
=
new
String
[
t1
.
length
];
HanyuPinyinOutputFormat
t3
=
new
HanyuPinyinOutputFormat
();
HanyuPinyinOutputFormat
t3
=
new
HanyuPinyinOutputFormat
();
t3
.
setCaseType
(
HanyuPinyinCaseType
.
LOWERCASE
);
t3
.
setCaseType
(
HanyuPinyinCaseType
.
LOWERCASE
);
t3
.
setToneType
(
HanyuPinyinToneType
.
WITHOUT_TONE
);
t3
.
setToneType
(
HanyuPinyinToneType
.
WITHOUT_TONE
);
t3
.
setVCharType
(
HanyuPinyinVCharType
.
WITH_V
);
t3
.
setVCharType
(
HanyuPinyinVCharType
.
WITH_V
);
String
t4
=
""
;
String
t4
=
""
;
int
t0
=
t1
.
length
;
int
t0
=
t1
.
length
;
try
{
try
{
for
(
int
i
=
0
;
i
<
t0
;
i
++)
{
for
(
int
i
=
0
;
i
<
t0
;
i
++)
{
if
(
java
.
lang
.
Character
.
toString
(
t1
[
i
]).
matches
(
"[\\u4E00-\\u9FA5]+"
))
{
if
(
java
.
lang
.
Character
.
toString
(
t1
[
i
]).
matches
(
"[\\u4E00-\\u9FA5]+"
))
{
t2
=
PinyinHelper
.
toHanyuPinyinStringArray
(
t1
[
i
],
t3
);
t2
=
PinyinHelper
.
toHanyuPinyinStringArray
(
t1
[
i
],
t3
);
t4
+=
t2
[
0
];
t4
+=
t2
[
0
];
}
else
{
}
else
{
t4
+=
java
.
lang
.
Character
.
toString
(
t1
[
i
]);
t4
+=
java
.
lang
.
Character
.
toString
(
t1
[
i
]);
}
}
}
}
return
t4
;
return
t4
;
}
catch
(
BadHanyuPinyinOutputFormatCombination
e1
)
{
}
catch
(
BadHanyuPinyinOutputFormatCombination
e1
)
{
e1
.
printStackTrace
();
e1
.
printStackTrace
();
}
}
return
t4
;
return
t4
;
}
}
/**
/**
*
*
* @Description 获取中文字符串的全拼
* @Description 获取中文字符串的全拼
* @param str
* @param str
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String 返回大写拼音
* @return String 返回大写拼音
* @throws
* @throws
*/
*/
public
static
String
FullPinyin
(
String
str
)
{
public
static
String
FullPinyin
(
String
str
)
{
return
fullPinyin
(
str
).
toUpperCase
();
return
fullPinyin
(
str
).
toUpperCase
();
}
}
/**
/**
*
*
* @Description 获取汉子拼音首字母
* @Description 获取汉子拼音首字母
* @param str
* @param str
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String 返回小写首拼音字母
* @return String 返回小写首拼音字母
* @throws
* @throws
*/
*/
public
static
String
firstPinyin
(
String
str
)
{
public
static
String
firstPinyin
(
String
str
)
{
try
{
try
{
return
String
.
valueOf
(
fullPinyin
(
str
).
charAt
(
0
));
return
String
.
valueOf
(
fullPinyin
(
str
).
charAt
(
0
));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
return
""
;
return
""
;
}
}
}
}
/**
/**
*
*
* @Description 获取汉子拼音首字母
* @Description 获取汉子拼音首字母
* @param str
* @param str
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String 返回大写首拼音字母
* @return String 返回大写首拼音字母
* @throws
* @throws
*/
*/
public
static
String
FirstPinyin
(
String
str
)
{
public
static
String
FirstPinyin
(
String
str
)
{
return
firstPinyin
(
str
).
toUpperCase
();
return
firstPinyin
(
str
).
toUpperCase
();
}
}
/**
/**
* @throws IOException
* @throws IOException
*
*
* @Description 从BufferedReader对象中读取字符串或文本
* @Description 从BufferedReader对象中读取字符串或文本
* @param reader
* @param reader
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
read
(
Reader
reader
)
throws
IOException
{
public
static
String
read
(
Reader
reader
)
throws
IOException
{
BufferedReader
br
=
null
;
BufferedReader
br
=
null
;
br
=
new
BufferedReader
(
reader
);
br
=
new
BufferedReader
(
reader
);
StringBuffer
sb
=
new
StringBuffer
();
StringBuffer
sb
=
new
StringBuffer
();
String
line
=
null
;
String
line
=
null
;
while
((
line
=
br
.
readLine
())
!=
null
)
{
while
((
line
=
br
.
readLine
())
!=
null
)
{
sb
.
append
(
line
+
System
.
getProperty
(
"line.separator"
));
sb
.
append
(
line
+
System
.
getProperty
(
"line.separator"
));
}
}
return
sb
.
toString
();
return
sb
.
toString
();
}
}
/**
/**
* 从输入流总读取字符串
* 从输入流总读取字符串
* @param is
* @param is
* @return
* @return
* @throws IOException
* @throws IOException
*/
*/
public
static
String
read
(
InputStream
is
)
throws
IOException
{
public
static
String
read
(
InputStream
is
)
throws
IOException
{
BufferedReader
br
=
new
BufferedReader
(
new
InputStreamReader
(
is
,
"UTF-8"
));
BufferedReader
br
=
new
BufferedReader
(
new
InputStreamReader
(
is
,
"UTF-8"
));
String
str
=
read
(
br
);
String
str
=
read
(
br
);
return
str
;
return
str
;
}
}
/**
/**
* 将文本写入的输出流
* 将文本写入的输出流
* @param writer
* @param writer
* @param text
* @param text
*/
*/
public
static
void
write
(
Writer
writer
,
String
text
)
{
public
static
void
write
(
Writer
writer
,
String
text
)
{
PrintWriter
printWriter
=
new
PrintWriter
(
writer
);
PrintWriter
printWriter
=
new
PrintWriter
(
writer
);
printWriter
.
append
(
text
);
printWriter
.
append
(
text
);
printWriter
.
flush
();
printWriter
.
flush
();
}
}
/**
/**
*
*
* @Description 首字母大写
* @Description 首字母大写
* @param str
* @param str
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
upperFirst
(
String
str
)
{
public
static
String
upperFirst
(
String
str
)
{
char
[]
ch
=
str
.
toCharArray
();
char
[]
ch
=
str
.
toCharArray
();
if
(
ch
[
0
]
>=
'a'
&&
ch
[
0
]
<=
'z'
)
{
if
(
ch
[
0
]
>=
'a'
&&
ch
[
0
]
<=
'z'
)
{
ch
[
0
]
=
(
char
)
(
ch
[
0
]
-
32
);
ch
[
0
]
=
(
char
)
(
ch
[
0
]
-
32
);
}
}
return
new
String
(
ch
);
return
new
String
(
ch
);
}
}
/**
/**
*
*
* @Description 首字母小写
* @Description 首字母小写
* @param str
* @param str
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
lowerFirst
(
String
str
)
{
public
static
String
lowerFirst
(
String
str
)
{
char
[]
chars
=
new
char
[
1
];
char
[]
chars
=
new
char
[
1
];
chars
[
0
]
=
str
.
charAt
(
0
);
chars
[
0
]
=
str
.
charAt
(
0
);
String
temp
=
new
String
(
chars
);
String
temp
=
new
String
(
chars
);
if
(
chars
[
0
]
>=
'A'
&&
chars
[
0
]
<=
'Z'
)
{
if
(
chars
[
0
]
>=
'A'
&&
chars
[
0
]
<=
'Z'
)
{
return
str
.
replaceFirst
(
temp
,
temp
.
toLowerCase
());
return
str
.
replaceFirst
(
temp
,
temp
.
toLowerCase
());
}
}
return
str
;
return
str
;
}
}
/**
/**
*
*
* @Description 返回一个非空的字符串
* @Description 返回一个非空的字符串
* @param strings
* @param strings
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月26日
* @date 2016年4月26日
* @since 2016年4月26日
* @since 2016年4月26日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
getNotNull
(
String
...
strings
)
{
public
static
String
getNotNull
(
String
...
strings
)
{
for
(
String
string
:
strings
)
{
for
(
String
string
:
strings
)
{
if
(
string
!=
null
)
{
if
(
string
!=
null
)
{
return
string
;
return
string
;
}
}
}
}
throw
new
PluginException
(
"NotNull Data is null"
);
throw
new
PluginException
(
"NotNull Data is null"
);
}
}
/**
/**
*
*
* @Description 返回一个非空的字符串
* @Description 返回一个非空的字符串
* @param strings
* @param strings
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月26日
* @date 2016年4月26日
* @since 2016年4月26日
* @since 2016年4月26日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
getNotEmpty
(
String
...
strings
)
{
public
static
String
getNotEmpty
(
String
...
strings
)
{
for
(
String
string
:
strings
)
{
for
(
String
string
:
strings
)
{
if
(
StringUtil
.
isNotEmpty
(
string
))
{
if
(
StringUtil
.
isNotEmpty
(
string
))
{
return
string
;
return
string
;
}
}
}
}
throw
new
PluginException
(
"NotEmpty Data is null"
);
throw
new
PluginException
(
"NotEmpty Data is null"
);
}
}
/**
/**
*
*
* @Description 返回一个非空的字符串
* @Description 返回一个非空的字符串
* @param strings
* @param strings
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月26日
* @date 2016年4月26日
* @since 2016年4月26日
* @since 2016年4月26日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
getNotBlank
(
String
...
strings
)
{
public
static
String
getNotBlank
(
String
...
strings
)
{
for
(
String
string
:
strings
)
{
for
(
String
string
:
strings
)
{
if
(
StringUtil
.
isNotBlank
(
string
))
{
if
(
StringUtil
.
isNotBlank
(
string
))
{
return
string
;
return
string
;
}
}
}
}
throw
new
PluginException
(
"NotBlank Data is null"
);
throw
new
PluginException
(
"NotBlank Data is null"
);
}
}
/**
/**
*
*
* @Description 返回一个非空的字符串
* @Description 返回一个非空的字符串
* @param strings
* @param strings
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月26日
* @date 2016年4月26日
* @since 2016年4月26日
* @since 2016年4月26日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
getNotUndefinedAndNull
(
String
...
strings
)
{
public
static
String
getNotUndefinedAndNull
(
String
...
strings
)
{
for
(
String
string
:
strings
)
{
for
(
String
string
:
strings
)
{
if
(
StringUtil
.
isNotUndefinedAndNull
(
string
))
{
if
(
StringUtil
.
isNotUndefinedAndNull
(
string
))
{
return
string
;
return
string
;
}
}
}
}
throw
new
PluginException
(
"UndefinedAndNull Data is null"
);
throw
new
PluginException
(
"UndefinedAndNull Data is null"
);
}
}
public
static
String
format
(
Object
obj
)
{
public
static
String
format
(
Object
obj
)
{
if
(
obj
==
null
)
{
if
(
obj
==
null
)
{
return
null
;
return
null
;
}
}
if
(
obj
instanceof
Date
)
{
if
(
obj
instanceof
Date
)
{
return
DateUtil
.
format
((
Date
)
obj
);
return
DateUtil
.
format
((
Date
)
obj
);
}
else
{
}
else
{
return
String
.
valueOf
(
obj
);
return
String
.
valueOf
(
obj
);
}
}
}
}
public
static
String
formatLength
(
Integer
nNo
,
String
format
)
{
public
static
String
formatLength
(
Integer
nNo
,
String
format
)
{
return
formatLength
(
String
.
valueOf
(
nNo
),
format
);
return
formatLength
(
String
.
valueOf
(
nNo
),
format
);
}
}
public
static
String
formatLength
(
Long
nNo
,
String
format
)
{
public
static
String
formatLength
(
Long
nNo
,
String
format
)
{
return
formatLength
(
String
.
valueOf
(
nNo
),
format
);
return
formatLength
(
String
.
valueOf
(
nNo
),
format
);
}
}
public
static
String
formatLength
(
String
sNo
,
String
format
)
{
public
static
String
formatLength
(
String
sNo
,
String
format
)
{
Integer
end
=
(
format
.
length
()
>
sNo
.
length
()
?
(
format
.
length
()
-
sNo
.
length
())
:
0
);
Integer
end
=
(
format
.
length
()
>
sNo
.
length
()
?
(
format
.
length
()
-
sNo
.
length
())
:
0
);
return
format
.
substring
(
0
,
end
)
+
sNo
;
return
format
.
substring
(
0
,
end
)
+
sNo
;
}
}
public
static
String
toJson
(
Object
object
)
{
public
static
String
toJson
(
Object
object
)
{
return
GsonUtil
.
toJson
(
object
);
return
GsonUtil
.
toJson
(
object
);
}
}
public
static
String
trim
(
String
string
,
String
...
strs
)
{
public
static
String
trim
(
String
string
,
String
...
strs
)
{
String
tmp
=
string
;
String
tmp
=
string
;
for
(
String
str
:
strs
)
{
for
(
String
str
:
strs
)
{
while
(
tmp
.
startsWith
(
str
))
{
while
(
tmp
.
startsWith
(
str
))
{
tmp
=
tmp
.
substring
(
1
);
tmp
=
tmp
.
substring
(
1
);
}
}
while
(
tmp
.
endsWith
(
str
))
{
while
(
tmp
.
endsWith
(
str
))
{
tmp
=
tmp
.
substring
(
0
,
tmp
.
length
()
-
1
);
tmp
=
tmp
.
substring
(
0
,
tmp
.
length
()
-
1
);
}
}
}
}
return
tmp
;
return
tmp
;
}
}
public
static
String
decodeBase64AsString
(
String
base64String
)
{
public
static
String
decodeBase64AsString
(
String
base64String
)
{
return
new
String
(
decodeBase64String
(
base64String
));
return
new
String
(
decodeBase64String
(
base64String
));
}
}
public
static
String
encodeBase64String
(
String
string
)
{
public
static
String
encodeBase64String
(
String
string
)
{
return
encodeBase64String
(
string
.
getBytes
());
return
encodeBase64String
(
string
.
getBytes
());
}
}
public
static
String
encodeBase64String
(
byte
[]
bytes
)
{
public
static
String
encodeBase64String
(
byte
[]
bytes
)
{
return
new
String
(
Base64
.
encodeBase64
(
bytes
));
return
new
String
(
Base64
.
encodeBase64
(
bytes
));
}
}
public
static
String
decodeHexAsString
(
String
hexString
)
{
public
static
String
decodeHexAsString
(
String
hexString
)
{
return
new
String
(
decodeHexString
(
hexString
));
return
new
String
(
decodeHexString
(
hexString
));
}
}
public
static
String
encodeHexString
(
String
string
)
{
public
static
String
encodeHexString
(
String
string
)
{
return
encodeHexString
(
string
.
getBytes
());
return
encodeHexString
(
string
.
getBytes
());
}
}
public
static
String
encodeHexString
(
byte
[]
bytes
)
{
public
static
String
encodeHexString
(
byte
[]
bytes
)
{
return
Hex
.
encodeHexString
(
bytes
);
return
Hex
.
encodeHexString
(
bytes
);
}
}
public
static
byte
[]
decodeBase64String
(
String
base64String
)
{
public
static
byte
[]
decodeBase64String
(
String
base64String
)
{
return
Base64
.
decodeBase64
(
base64String
);
return
Base64
.
decodeBase64
(
base64String
);
}
}
public
static
byte
[]
decodeHexString
(
String
hexString
)
{
public
static
byte
[]
decodeHexString
(
String
hexString
)
{
try
{
try
{
return
Hex
.
decodeHex
(
hexString
.
toCharArray
());
return
Hex
.
decodeHex
(
hexString
.
toCharArray
());
}
catch
(
DecoderException
e
)
{
}
catch
(
DecoderException
e
)
{
throw
new
CharsetException
(
e
);
throw
new
CharsetException
(
e
);
}
}
}
}
public
static
String
toSHA1String
(
String
text
)
{
public
static
String
toSHA1String
(
String
text
)
{
try
{
try
{
MessageDigest
messageDigest
=
MessageDigest
.
getInstance
(
"SHA1"
);
MessageDigest
messageDigest
=
MessageDigest
.
getInstance
(
"SHA1"
);
messageDigest
.
update
(
text
.
getBytes
());
messageDigest
.
update
(
text
.
getBytes
());
byte
[]
bytes
=
messageDigest
.
digest
();
byte
[]
bytes
=
messageDigest
.
digest
();
StringBuffer
hexString
=
new
StringBuffer
();
StringBuffer
hexString
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
bytes
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
bytes
.
length
;
i
++)
{
String
shaHex
=
Integer
.
toHexString
(
bytes
[
i
]
&
0xFF
);
String
shaHex
=
Integer
.
toHexString
(
bytes
[
i
]
&
0xFF
);
if
(
shaHex
.
length
()
<
2
)
{
if
(
shaHex
.
length
()
<
2
)
{
hexString
.
append
(
0
);
hexString
.
append
(
0
);
}
}
hexString
.
append
(
shaHex
);
hexString
.
append
(
shaHex
);
}
}
return
hexString
.
toString
().
toUpperCase
();
return
hexString
.
toString
().
toUpperCase
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
SHA1Exception
(
e
);
throw
new
SHA1Exception
(
e
);
}
}
}
}
public
static
String
toHMACSHA1String
(
String
encryptText
,
String
encryptKey
)
{
public
static
String
toHMACSHA1String
(
String
encryptText
,
String
encryptKey
)
{
try
{
try
{
SecretKey
secretKey
=
new
SecretKeySpec
(
encryptKey
.
getBytes
(),
"HmacSHA1"
);
SecretKey
secretKey
=
new
SecretKeySpec
(
encryptKey
.
getBytes
(),
"HmacSHA1"
);
Mac
mac
=
Mac
.
getInstance
(
secretKey
.
getAlgorithm
());
Mac
mac
=
Mac
.
getInstance
(
secretKey
.
getAlgorithm
());
mac
.
init
(
secretKey
);
mac
.
init
(
secretKey
);
byte
[]
bs
=
mac
.
doFinal
(
encryptText
.
getBytes
());
byte
[]
bs
=
mac
.
doFinal
(
encryptText
.
getBytes
());
return
Base64
.
encodeBase64String
(
bs
);
return
Base64
.
encodeBase64String
(
bs
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
SHA1Exception
(
e
);
throw
new
SHA1Exception
(
e
);
}
}
}
}
public
static
String
toMD5HexString
(
String
text
)
{
public
static
String
toMD5HexString
(
String
text
)
{
try
{
try
{
return
StringUtil
.
encodeHexString
(
MessageDigest
.
getInstance
(
"MD5"
).
digest
(
text
.
getBytes
())).
toUpperCase
();
return
StringUtil
.
encodeHexString
(
MessageDigest
.
getInstance
(
"MD5"
).
digest
(
text
.
getBytes
())).
toUpperCase
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
MD5Exception
(
e
);
throw
new
MD5Exception
(
e
);
}
}
}
}
public
static
String
toMD5Base64String
(
String
text
)
{
public
static
String
toMD5Base64String
(
String
text
)
{
try
{
try
{
return
StringUtil
.
encodeBase64String
(
MessageDigest
.
getInstance
(
"MD5"
).
digest
(
text
.
getBytes
()));
return
StringUtil
.
encodeBase64String
(
MessageDigest
.
getInstance
(
"MD5"
).
digest
(
text
.
getBytes
()));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
MD5Exception
(
e
);
throw
new
MD5Exception
(
e
);
}
}
}
}
public
static
String
getUid
()
{
public
static
String
getUid
()
{
return
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
).
toUpperCase
();
return
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
).
toUpperCase
();
}
}
public
static
String
getId
(
Integer
length
,
String
prefix
)
{
public
static
String
getId
(
Integer
length
,
String
prefix
)
{
if
(
prefix
==
null
)
{
if
(
prefix
==
null
)
{
prefix
=
""
;
prefix
=
""
;
}
}
if
(
length
==
null
)
{
if
(
length
==
null
)
{
length
=
32
;
length
=
32
;
}
}
Integer
i
=
length
-
prefix
.
length
()
-
17
;
Integer
i
=
length
-
prefix
.
length
()
-
17
;
return
prefix
+
DateUtil
.
format
(
new
Date
(),
"yyyyMMddHHmmssSSS"
)
+
(
i
<=
0
?
""
:
MathUtil
.
random
(
i
));
return
prefix
+
DateUtil
.
format
(
new
Date
(),
"yyyyMMddHHmmssSSS"
)
+
(
i
<=
0
?
""
:
MathUtil
.
random
(
i
));
}
}
public
static
String
getId
(
String
prefix
)
{
public
static
String
getId
(
String
prefix
)
{
return
getId
(
32
,
prefix
);
return
getId
(
32
,
prefix
);
}
}
public
static
String
getId
(
Integer
length
)
{
public
static
String
getId
(
Integer
length
)
{
return
getId
(
length
,
""
);
return
getId
(
length
,
""
);
}
}
public
static
String
getId
()
{
public
static
String
getId
()
{
return
getId
(
32
,
""
);
return
getId
(
32
,
""
);
}
}
public
static
String
[]
search
(
String
string
,
String
regex
)
{
public
static
String
[]
search
(
String
string
,
String
regex
)
{
return
StringUtil
.
search
(
string
,
regex
,
null
);
return
StringUtil
.
search
(
string
,
regex
,
null
);
}
}
public
static
String
[]
search
(
String
string
,
String
regex
,
Integer
groupNo
)
{
public
static
String
[]
search
(
String
string
,
String
regex
,
Integer
groupNo
)
{
Pattern
pattern
=
Pattern
.
compile
(
regex
);
Pattern
pattern
=
Pattern
.
compile
(
regex
);
Matcher
matcher
=
pattern
.
matcher
(
string
);
Matcher
matcher
=
pattern
.
matcher
(
string
);
List
<
String
>
list
=
new
ArrayList
<
String
>();
List
<
String
>
list
=
new
ArrayList
<
String
>();
while
(
matcher
.
find
())
{
while
(
matcher
.
find
())
{
if
(
groupNo
!=
null
)
{
if
(
groupNo
!=
null
)
{
list
.
add
(
matcher
.
group
(
groupNo
));
list
.
add
(
matcher
.
group
(
groupNo
));
}
else
{
}
else
{
list
.
add
(
matcher
.
group
(
0
));
list
.
add
(
matcher
.
group
(
0
));
}
}
}
}
return
list
.
toArray
(
new
String
[
list
.
size
()]);
return
list
.
toArray
(
new
String
[
list
.
size
()]);
}
}
public
static
String
[]
searchNumber
(
String
string
)
{
public
static
String
[]
searchNumber
(
String
string
)
{
List
<
String
>
numbers
=
new
ArrayList
<
String
>();
List
<
String
>
numbers
=
new
ArrayList
<
String
>();
Pattern
pattern
=
Pattern
.
compile
(
"[\\d]+(\\.?[\\d]+)?"
);
Pattern
pattern
=
Pattern
.
compile
(
"[\\d]+(\\.?[\\d]+)?"
);
Matcher
matcher
=
pattern
.
matcher
(
string
);
Matcher
matcher
=
pattern
.
matcher
(
string
);
while
(
matcher
.
find
())
{
while
(
matcher
.
find
())
{
numbers
.
add
(
matcher
.
group
(
0
));
numbers
.
add
(
matcher
.
group
(
0
));
}
}
return
numbers
.
toArray
(
new
String
[
numbers
.
size
()]);
return
numbers
.
toArray
(
new
String
[
numbers
.
size
()]);
}
}
/**
/**
*
*
* @Description 从BufferedReader对象中读取字符串或文本
* @Description 从BufferedReader对象中读取字符串或文本
* @param reader
* @param reader
* @return
* @return
* @author 曲欣亮
* @author 曲欣亮
* @date 2016年4月25日
* @date 2016年4月25日
* @since 2016年4月25日
* @since 2016年4月25日
* @return String
* @return String
* @throws
* @throws
*/
*/
public
static
String
read
(
BufferedReader
reader
)
{
public
static
String
read
(
BufferedReader
reader
)
{
try
{
try
{
StringBuffer
sb
=
new
StringBuffer
();
StringBuffer
sb
=
new
StringBuffer
();
String
line
=
null
;
String
line
=
null
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
while
((
line
=
reader
.
readLine
())
!=
null
)
{
sb
.
append
(
line
+
System
.
getProperty
(
"line.separator"
));
sb
.
append
(
line
+
System
.
getProperty
(
"line.separator"
));
}
}
return
sb
.
toString
();
return
sb
.
toString
();
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
return
""
;
return
""
;
}
}
/**
/**
*
*
* @Title: doMD5Sign
* @Title: doMD5Sign
* @Description: TODO(这里用一句话描述这个方法的作用)
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param: @param map
* @param: @param map
* @param: @return
* @param: @return
* @return: String
* @return: String
* @throws
* @throws
*/
*/
public
static
String
doMD5Sign
(
Map
<
String
,
String
>
map
){
public
static
String
doMD5Sign
(
Map
<
String
,
String
>
map
){
Map
<
String
,
String
>
compMap
=
new
TreeMap
<
String
,
String
>(
Map
<
String
,
String
>
compMap
=
new
TreeMap
<
String
,
String
>(
new
Comparator
<
String
>()
{
new
Comparator
<
String
>()
{
public
int
compare
(
String
obj1
,
String
obj2
)
{
public
int
compare
(
String
obj1
,
String
obj2
)
{
return
obj1
.
compareTo
(
obj2
);
return
obj1
.
compareTo
(
obj2
);
}
}
});
});
for
(
Entry
<
String
,
String
>
entry
:
map
.
entrySet
()){
for
(
Entry
<
String
,
String
>
entry
:
map
.
entrySet
()){
compMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
compMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
StringBuffer
sb
=
new
StringBuffer
();
StringBuffer
sb
=
new
StringBuffer
();
for
(
Entry
<
String
,
String
>
entry
:
compMap
.
entrySet
()){
for
(
Entry
<
String
,
String
>
entry
:
compMap
.
entrySet
()){
sb
.
append
(
"&"
);
sb
.
append
(
"&"
);
sb
.
append
(
entry
.
getKey
());
sb
.
append
(
entry
.
getKey
());
sb
.
append
(
"="
);
sb
.
append
(
"="
);
sb
.
append
(
entry
.
getValue
());
sb
.
append
(
entry
.
getValue
());
}
}
String
s
=
sb
.
toString
().
substring
(
1
);
String
s
=
sb
.
toString
().
substring
(
1
);
byte
[]
secretBytes
=
null
;
byte
[]
secretBytes
=
null
;
try
{
try
{
secretBytes
=
MessageDigest
.
getInstance
(
"MD5"
).
digest
(
s
.
getBytes
());
secretBytes
=
MessageDigest
.
getInstance
(
"MD5"
).
digest
(
s
.
getBytes
());
}
catch
(
NoSuchAlgorithmException
e
)
{
}
catch
(
NoSuchAlgorithmException
e
)
{
// TODO Auto-generated catch block
// TODO Auto-generated catch block
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
String
sign
=
Hex
.
encodeHexString
(
secretBytes
).
toUpperCase
();
String
sign
=
Hex
.
encodeHexString
(
secretBytes
).
toUpperCase
();
return
sign
;
return
sign
;
}
}
public
static
String
getRandom
(
int
num
){
public
static
String
getRandom
(
int
num
){
return
String
.
valueOf
(
Math
.
random
()).
substring
(
2
,
2
+
num
);
return
String
.
valueOf
(
Math
.
random
()).
substring
(
2
,
2
+
num
);
}
}
/**
/**
* 获取随机字符串
* 获取随机字符串
* @return
* @return
*/
*/
public
static
String
getNonceStr
()
{
public
static
String
getNonceStr
()
{
// 随机数
// 随机数
String
currTime
=
DateUtil
.
format
(
new
Date
(),
DateUtil
.
FMT_YYYYMMddHHMMSS
);
String
currTime
=
DateUtil
.
format
(
new
Date
(),
DateUtil
.
FMT_YYYYMMddHHMMSS
);
// 8位日期
// 8位日期
String
strTime
=
currTime
.
substring
(
8
,
currTime
.
length
());
String
strTime
=
currTime
.
substring
(
8
,
currTime
.
length
());
// 四位随机数
// 四位随机数
String
strRandom
=
getRandom
(
4
)
+
""
;
String
strRandom
=
getRandom
(
4
)
+
""
;
// 10位序列号,可以自行调整。
// 10位序列号,可以自行调整。
return
strTime
+
strRandom
;
return
strTime
+
strRandom
;
}
}
public
static
final
String
inputStream2String
(
InputStream
in
)
public
static
final
String
inputStream2String
(
InputStream
in
)
throws
UnsupportedEncodingException
,
IOException
{
throws
UnsupportedEncodingException
,
IOException
{
if
(
in
==
null
)
if
(
in
==
null
)
return
""
;
return
""
;
StringBuffer
out
=
new
StringBuffer
();
StringBuffer
out
=
new
StringBuffer
();
byte
[]
b
=
new
byte
[
4096
];
byte
[]
b
=
new
byte
[
4096
];
for
(
int
n
;
(
n
=
in
.
read
(
b
))
!=
-
1
;)
{
for
(
int
n
;
(
n
=
in
.
read
(
b
))
!=
-
1
;)
{
out
.
append
(
new
String
(
b
,
0
,
n
,
"UTF-8"
));
out
.
append
(
new
String
(
b
,
0
,
n
,
"UTF-8"
));
}
}
return
out
.
toString
();
return
out
.
toString
();
}
}
}
/**
*
* @Description 字节数组转16进制字符串
* @param bytes
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public
static
String
bytesToHex
(
byte
[]
bytes
)
{
return
Hex
.
encodeHexString
(
bytes
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment