java 全局工具类_java中常用的工具类(一)

packagecom.itjh.javaUtil;

importjava.util.ArrayList;

importjava.util.List;

/**

*

* String工具类.

*

* @author 宋立君

* @date 2014年06月24日

*/

publicclassStringUtil{

privatestaticfinalintINDEX_NOT_FOUND=-1;

privatestaticfinalStringEMPTY="";

/**

*

* The maximum size to which the padding constant(s) can expand.

*

*/

privatestaticfinalintPAD_LIMIT=8192;

/**

* 功能:将半角的符号转换成全角符号.(即英文字符转中文字符)

*

* @author 宋立君

* @param str

*            源字符串

* @return String

* @date 2014年06月24日

*/

publicstaticStringchangeToFull(Stringstr){

Stringsource="1234567890!@#$%^&*()abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_=+\\|[];:'\",<.>/?";

String[]decode={"1","2","3","4","5","6","7","8","9","0",

"!","@","#","$","%","︿","&","*","(",")","a","b",

"c","d","e","f","g","h","i","j","k","l","m","n",

"o","p","q","r","s","t","u","v","w","x","y","z",

"A","B","C","D","E","F","G","H","I","J","K","L",

"M","N","O","P","Q","R","S","T","U","V","W","X",

"Y","Z","-","_","=","+","\","|","【","】",";",":",

"'","\"",",","〈","。","〉","/","?"};

Stringresult="";

for(inti=0;i

intpos=source.indexOf(str.charAt(i));

if(pos!=-1){

result+=decode[pos];

}else{

result+=str.charAt(i);

}

}

returnresult;

}

/**

* 功能:cs串中是否一个都不包含字符数组searchChars中的字符。

*

* @author 宋立君

* @param cs

*            字符串

* @param searchChars

*            字符数组

* @return boolean 都不包含返回true,否则返回false。

* @date 2014年06月24日

*/

publicstaticbooleancontainsNone(CharSequence cs,char...searchChars){

if(cs==null||searchChars==null){

returntrue;

}

intcsLen=cs.length();

intcsLast=csLen-1;

intsearchLen=searchChars.length;

intsearchLast=searchLen-1;

for(inti=0;i

charch=cs.charAt(i);

for(intj=0;j

if(searchChars[j]==ch){

if(Character.isHighSurrogate(ch)){

if(j==searchLast){

// missing low surrogate, fine, like

// String.indexOf(String)

returnfalse;

}

if(i

&&searchChars[j+1]==cs.charAt(i+1)){

returnfalse;

}

}else{

// ch is in the Basic Multilingual Plane

returnfalse;

}

}

}

}

returntrue;

}

/**

*

* 编码为Unicode,格式 '\u0020'.

*

*

* @author 宋立君

*

*        

 
 

*   CharUtils.unicodeEscaped(' ') = "\u0020"

*   CharUtils.unicodeEscaped('A') = "\u0041"

*

*

* @param ch

*            源字符串

* @return 转码后的字符串

* @date 2014年06月24日

*/

publicstaticStringunicodeEscaped(charch){

if(ch<0x10){

return"\\u000"+Integer.toHexString(ch);

}elseif(ch<0x100){

return"\\u00"+Integer.toHexString(ch);

}elseif(ch<0x1000){

return"\\u0"+Integer.toHexString(ch);

}

return"\\u"+Integer.toHexString(ch);

}

/**

*

* 进行tostring操作,如果传入的是null,返回空字符串。

*

*

*

 
 

* ObjectUtils.toString(null)         = ""

* ObjectUtils.toString("")           = ""

* ObjectUtils.toString("bat")        = "bat"

* ObjectUtils.toString(Boolean.TRUE) = "true"

*

*

* @param obj

*            源

* @return String

*/

publicstaticStringtoString(Objectobj){

returnobj==null?"":obj.toString();

}

/**

*

* 进行tostring操作,如果传入的是null,返回指定的默认值。

*

*

*

 
 

* ObjectUtils.toString(null, null)           = null

* ObjectUtils.toString(null, "null")         = "null"

* ObjectUtils.toString("", "null")           = ""

* ObjectUtils.toString("bat", "null")        = "bat"

* ObjectUtils.toString(Boolean.TRUE, "null") = "true"

*

*

* @param obj

*            源

* @param nullStr

*            如果obj为null时返回这个指定值

* @return String

*/

publicstaticStringtoString(Objectobj,StringnullStr){

returnobj==null?nullStr:obj.toString();

}

/**

*

* 只从源字符串中移除指定开头子字符串.

*

*

*

 
 

* StringUtil.removeStart(null, *)      = null

* StringUtil.removeStart("", *)        = ""

* StringUtil.removeStart(*, null)      = *

* StringUtil.removeStart("www.domain.com", "www.")   = "domain.com"

* StringUtil.removeStart("domain.com", "www.")       = "domain.com"

* StringUtil.removeStart("www.domain.com", "domain") = "www.domain.com"

* StringUtil.removeStart("abc", "")    = "abc"

*

*

* @param str

*            源字符串

* @param remove

*            将要被移除的子字符串

* @return String

*/

publicstaticStringremoveStart(Stringstr,Stringremove){

if(isEmpty(str)||isEmpty(remove)){

returnstr;

}

if(str.startsWith(remove)){

returnstr.substring(remove.length());

}

returnstr;

}

/**

*

* 只从源字符串中移除指定结尾的子字符串.

*

*

*

 
 

* StringUtil.removeEnd(null, *)      = null

* StringUtil.removeEnd("", *)        = ""

* StringUtil.removeEnd(*, null)      = *

* StringUtil.removeEnd("www.domain.com", ".com.")  = "www.domain.com"

* StringUtil.removeEnd("www.domain.com", ".com")   = "www.domain"

* StringUtil.removeEnd("www.domain.com", "domain") = "www.domain.com"

* StringUtil.removeEnd("abc", "")    = "abc"

*

*

* @param str

*            源字符串

* @param remove

*            将要被移除的子字符串

* @return String

*/

publicstaticStringremoveEnd(Stringstr,Stringremove){

if(isEmpty(str)||isEmpty(remove)){

returnstr;

}

if(str.endsWith(remove)){

returnstr.substring(0,str.length()-remove.length());

}

returnstr;

}

/**

*

* 将一个字符串重复N次

*

*

*

 
 

* StringUtil.repeat(null, 2) = null

* StringUtil.repeat("", 0)   = ""

* StringUtil.repeat("", 2)   = ""

* StringUtil.repeat("a", 3)  = "aaa"

* StringUtil.repeat("ab", 2) = "abab"

* StringUtil.repeat("a", -2) = ""

*

*

* @param str

*            源字符串

* @param repeat

*            重复的次数

* @return String

*/

publicstaticStringrepeat(Stringstr,intrepeat){

// Performance tuned for 2.0 (JDK1.4)

if(str==null){

returnnull;

}

if(repeat<=0){

returnEMPTY;

}

intinputLength=str.length();

if(repeat==1||inputLength==0){

returnstr;

}

if(inputLength==1&&repeat<=PAD_LIMIT){

returnrepeat(str.charAt(0),repeat);

}

intoutputLength=inputLength*repeat;

switch(inputLength){

case1:

returnrepeat(str.charAt(0),repeat);

case2:

charch0=str.charAt(0);

charch1=str.charAt(1);

char[]output2=newchar[outputLength];

for(inti=repeat*2-2;i>=0;i--,i--){

output2[i]=ch0;

output2[i+1]=ch1;

}

returnnewString(output2);

default:

StringBuilder buf=newStringBuilder(outputLength);

for(inti=0;i

buf.append(str);

}

returnbuf.toString();

}

}

/**

*

* 将一个字符串重复N次,并且中间加上指定的分隔符

*

*

*

 
 

* StringUtil.repeat(null, null, 2) = null

* StringUtil.repeat(null, "x", 2)  = null

* StringUtil.repeat("", null, 0)   = ""

* StringUtil.repeat("", "", 2)     = ""

* StringUtil.repeat("", "x", 3)    = "xxx"

* StringUtil.repeat("?", ", ", 3)  = "?, ?, ?"

*

*

* @param str

*            源字符串

* @param separator

*            分隔符

* @param repeat

*            重复次数

* @return String

*/

publicstaticStringrepeat(Stringstr,Stringseparator,intrepeat){

if(str==null||separator==null){

returnrepeat(str,repeat);

}else{

// given that repeat(String, int) is quite optimized, better to rely

// on it than try and splice this into it

Stringresult=repeat(str+separator,repeat);

returnremoveEnd(result,separator);

}

}

/**

*

* 将某个字符重复N次.

*

*

* @param ch

*            某个字符

* @param repeat

*            重复次数

* @return String

*/

publicstaticStringrepeat(charch,intrepeat){

char[]buf=newchar[repeat];

for(inti=repeat-1;i>=0;i--){

buf[i]=ch;

}

returnnewString(buf);

}

/**

*

* 字符串长度达不到指定长度时,在字符串右边补指定的字符.

*

*

*

 
 

* StringUtil.rightPad(null, *, *)     = null

* StringUtil.rightPad("", 3, 'z')     = "zzz"

* StringUtil.rightPad("bat", 3, 'z')  = "bat"

* StringUtil.rightPad("bat", 5, 'z')  = "batzz"

* StringUtil.rightPad("bat", 1, 'z')  = "bat"

* StringUtil.rightPad("bat", -1, 'z') = "bat"

*

*

* @param str

*            源字符串

* @param size

*            指定的长度

* @param padChar

*            进行补充的字符

* @return String

*/

publicstaticStringrightPad(Stringstr,intsize,charpadChar){

if(str==null){

returnnull;

}

intpads=size-str.length();

if(pads<=0){

returnstr;// returns original String when possible

}

if(pads>PAD_LIMIT){

returnrightPad(str,size,String.valueOf(padChar));

}

returnstr.concat(repeat(padChar,pads));

}

/**

*

* 扩大字符串长度,从左边补充指定字符

*

*

*

 
 

* StringUtil.rightPad(null, *, *)      = null

* StringUtil.rightPad("", 3, "z")      = "zzz"

* StringUtil.rightPad("bat", 3, "yz")  = "bat"

* StringUtil.rightPad("bat", 5, "yz")  = "batyz"

* StringUtil.rightPad("bat", 8, "yz")  = "batyzyzy"

* StringUtil.rightPad("bat", 1, "yz")  = "bat"

* StringUtil.rightPad("bat", -1, "yz") = "bat"

* StringUtil.rightPad("bat", 5, null)  = "bat  "

* StringUtil.rightPad("bat", 5, "")    = "bat  "

*

*

* @param str

*            源字符串

* @param size

*            扩大后的长度

* @param padStr

*            在右边补充的字符串

* @return String

*/

publicstaticStringrightPad(Stringstr,intsize,StringpadStr){

if(str==null){

returnnull;

}

if(isEmpty(padStr)){

padStr=" ";

}

intpadLen=padStr.length();

intstrLen=str.length();

intpads=size-strLen;

if(pads<=0){

returnstr;// returns original String when possible

}

if(padLen==1&&pads<=PAD_LIMIT){

returnrightPad(str,size,padStr.charAt(0));

}

if(pads==padLen){

returnstr.concat(padStr);

}elseif(pads

returnstr.concat(padStr.substring(0,pads));

}else{

char[]padding=newchar[pads];

char[]padChars=padStr.toCharArray();

for(inti=0;i

padding[i]=padChars[i%padLen];

}

returnstr.concat(newString(padding));

}

}

/**

*

* 扩大字符串长度,从左边补充空格

*

*

*

 
 

* StringUtil.leftPad(null, *)   = null

* StringUtil.leftPad("", 3)     = "   "

* StringUtil.leftPad("bat", 3)  = "bat"

* StringUtil.leftPad("bat", 5)  = "  bat"

* StringUtil.leftPad("bat", 1)  = "bat"

* StringUtil.leftPad("bat", -1) = "bat"

*

*

* @param str

*            源字符串

* @param size

*            扩大后的长度

* @return String

*/

publicstaticStringleftPad(Stringstr,intsize){

returnleftPad(str,size,' ');

}

/**

*

* 扩大字符串长度,从左边补充指定的字符

*

*

*

 
 

* StringUtil.leftPad(null, *, *)     = null

* StringUtil.leftPad("", 3, 'z')     = "zzz"

* StringUtil.leftPad("bat", 3, 'z')  = "bat"

* StringUtil.leftPad("bat", 5, 'z')  = "zzbat"

* StringUtil.leftPad("bat", 1, 'z')  = "bat"

* StringUtil.leftPad("bat", -1, 'z') = "bat"

*

*

* @param str

*            源字符串

* @param size

*            扩大后的长度

* @param padStr

*            补充的字符

* @return String

*/

publicstaticStringleftPad(Stringstr,intsize,charpadChar){

if(str==null){

returnnull;

}

intpads=size-str.length();

if(pads<=0){

returnstr;// returns original String when possible

}

if(pads>PAD_LIMIT){

returnleftPad(str,size,String.valueOf(padChar));

}

returnrepeat(padChar,pads).concat(str);

}

/**

*

* 扩大字符串长度,从左边补充指定的字符

*

*

*

 
 

* StringUtil.leftPad(null, *, *)      = null

* StringUtil.leftPad("", 3, "z")      = "zzz"

* StringUtil.leftPad("bat", 3, "yz")  = "bat"

* StringUtil.leftPad("bat", 5, "yz")  = "yzbat"

* StringUtil.leftPad("bat", 8, "yz")  = "yzyzybat"

* StringUtil.leftPad("bat", 1, "yz")  = "bat"

* StringUtil.leftPad("bat", -1, "yz") = "bat"

* StringUtil.leftPad("bat", 5, null)  = "  bat"

* StringUtil.leftPad("bat", 5, "")    = "  bat"

*

*

* @param str

*            源字符串

* @param size

*            扩大后的长度

* @param padStr

*            补充的字符串

* @return String

*/

publicstaticStringleftPad(Stringstr,intsize,StringpadStr){

if(str==null){

returnnull;

}

if(isEmpty(padStr)){

padStr=" ";

}

intpadLen=padStr.length();

intstrLen=str.length();

intpads=size-strLen;

if(pads<=0){

returnstr;// returns original String when possible

}

if(padLen==1&&pads<=PAD_LIMIT){

returnleftPad(str,size,padStr.charAt(0));

}

if(pads==padLen){

returnpadStr.concat(str);

}elseif(pads

returnpadStr.substring(0,pads).concat(str);

}else{

char[]padding=newchar[pads];

char[]padChars=padStr.toCharArray();

for(inti=0;i

padding[i]=padChars[i%padLen];

}

returnnewString(padding).concat(str);

}

}

/**

*

* 扩大字符串长度并将现在的字符串居中,被扩大部分用空格填充。

*

*

*

 
 

* StringUtil.center(null, *)   = null

* StringUtil.center("", 4)     = "    "

* StringUtil.center("ab", -1)  = "ab"

* StringUtil.center("ab", 4)   = " ab "

* StringUtil.center("abcd", 2) = "abcd"

* StringUtil.center("a", 4)    = " a  "

*

*

* @param str

*            源字符串

* @param size

*            扩大后的长度

* @return String

*/

publicstaticStringcenter(Stringstr,intsize){

returncenter(str,size,' ');

}

/**

*

* 将字符串长度修改为指定长度,并进行居中显示。

*

*

*

 
 

* StringUtil.center(null, *, *)     = null

* StringUtil.center("", 4, ' ')     = "    "

* StringUtil.center("ab", -1, ' ')  = "ab"

* StringUtil.center("ab", 4, ' ')   = " ab"

* StringUtil.center("abcd", 2, ' ') = "abcd"

* StringUtil.center("a", 4, ' ')    = " a  "

* StringUtil.center("a", 4, 'y')    = "yayy"

*

*

* @param str

*            源字符串

* @param size

*            指定的长度

* @param padStr

*            长度不够时补充的字符串

* @return String

* @throws IllegalArgumentException

*             如果被补充字符串为 null或者 empty

*/

publicstaticStringcenter(Stringstr,intsize,charpadChar){

if(str==null||size<=0){

returnstr;

}

intstrLen=str.length();

intpads=size-strLen;

if(pads<=0){

returnstr;

}

str=leftPad(str,strLen+pads/2,padChar);

str=rightPad(str,size,padChar);

returnstr;

}

/**

*

* 将字符串长度修改为指定长度,并进行居中显示。

*

*

*

 
 

* StringUtil.center(null, *, *)     = null

* StringUtil.center("", 4, " ")     = "    "

* StringUtil.center("ab", -1, " ")  = "ab"

* StringUtil.center("ab", 4, " ")   = " ab"

* StringUtil.center("abcd", 2, " ") = "abcd"

* StringUtil.center("a", 4, " ")    = " a  "

* StringUtil.center("a", 4, "yz")   = "yayz"

* StringUtil.center("abc", 7, null) = "  abc  "

* StringUtil.center("abc", 7, "")   = "  abc  "

*

*

* @param str

*            源字符串

* @param size

*            指定的长度

* @param padStr

*            长度不够时补充的字符串

* @return String

* @throws IllegalArgumentException

*             如果被补充字符串为 null或者 empty

*/

publicstaticStringcenter(Stringstr,intsize,StringpadStr){

if(str==null||size<=0){

returnstr;

}

if(isEmpty(padStr)){

padStr=" ";

}

intstrLen=str.length();

intpads=size-strLen;

if(pads<=0){

returnstr;

}

str=leftPad(str,strLen+pads/2,padStr);

str=rightPad(str,size,padStr);

returnstr;

}

/**

*

* 检查字符串是否全部为小写.

*

*

*

 
 

* StringUtil.isAllLowerCase(null)   = false

* StringUtil.isAllLowerCase("")     = false

* StringUtil.isAllLowerCase("  ")   = false

* StringUtil.isAllLowerCase("abc")  = true

* StringUtil.isAllLowerCase("abC") = false

*

*

* @param cs

*            源字符串

* @return String

*/

publicstaticbooleanisAllLowerCase(Stringcs){

if(cs==null||isEmpty(cs)){

returnfalse;

}

intsz=cs.length();

for(inti=0;i

if(Character.isLowerCase(cs.charAt(i))==false){

returnfalse;

}

}

returntrue;

}

/**

*

* 检查是否都是大写.

*

*

*

 
 

* StringUtil.isAllUpperCase(null)   = false

* StringUtil.isAllUpperCase("")     = false

* StringUtil.isAllUpperCase("  ")   = false

* StringUtil.isAllUpperCase("ABC")  = true

* StringUtil.isAllUpperCase("aBC") = false

*

*

* @param cs

*            源字符串

* @return String

*/

publicstaticbooleanisAllUpperCase(Stringcs){

if(cs==null||StringUtil.isEmpty(cs)){

returnfalse;

}

intsz=cs.length();

for(inti=0;i

if(Character.isUpperCase(cs.charAt(i))==false){

returnfalse;

}

}

returntrue;

}

/**

*

* 反转字符串.

*

*

*

 
 

* StringUtil.reverse(null)  = null

* StringUtil.reverse("")    = ""

* StringUtil.reverse("bat") = "tab"

*

*

* @param str

*            源字符串

* @return String

*/

publicstaticStringreverse(Stringstr){

if(str==null){

returnnull;

}

returnnewStringBuilder(str).reverse().toString();

}

/**

*

* 字符串达不到一定长度时在右边补空白.

*

*

*

 
 

* StringUtil.rightPad(null, *)   = null

* StringUtil.rightPad("", 3)     = "   "

* StringUtil.rightPad("bat", 3)  = "bat"

* StringUtil.rightPad("bat", 5)  = "bat  "

* StringUtil.rightPad("bat", 1)  = "bat"

* StringUtil.rightPad("bat", -1) = "bat"

*

*

* @param str

*            源字符串

* @param size

*            指定的长度

* @return String

*/

publicstaticStringrightPad(Stringstr,intsize){

returnrightPad(str,size,' ');

}

/**

* 从右边截取字符串.

*

*

 
 

* StringUtil.right(null, *)    = null

* StringUtil.right(*, -ve)     = ""

* StringUtil.right("", *)      = ""

* StringUtil.right("abc", 0)   = ""

* StringUtil.right("abc", 2)   = "bc"

* StringUtil.right("abc", 4)   = "abc"

*

*

* @param str

*            源字符串

* @param len

*            长度

* @return String

*/

publicstaticStringright(Stringstr,intlen){

if(str==null){

returnnull;

}

if(len<0){

returnEMPTY;

}

if(str.length()<=len){

returnstr;

}

returnstr.substring(str.length()-len);

}

/**

*

* 截取一个字符串的前几个.

*

*

*

 
 

* StringUtil.left(null, *)    = null

* StringUtil.left(*, -ve)     = ""

* StringUtil.left("", *)      = ""

* StringUtil.left("abc", 0)   = ""

* StringUtil.left("abc", 2)   = "ab"

* StringUtil.left("abc", 4)   = "abc"

*

*

* @param str

*            源字符串

* @param len

*            截取的长度

* @return the String

*/

publicstaticStringleft(Stringstr,intlen){

if(str==null){

returnnull;

}

if(len<0){

returnEMPTY;

}

if(str.length()<=len){

returnstr;

}

returnstr.substring(0,len);

}

/**

*

* 得到tag字符串中间的子字符串,只返回第一个匹配项。

*

*

*

 
 

* StringUtil.substringBetween(null, *)            = null

* StringUtil.substringBetween("", "")             = ""

* StringUtil.substringBetween("", "tag")          = null

* StringUtil.substringBetween("tagabctag", null)  = null

* StringUtil.substringBetween("tagabctag", "")    = ""

* StringUtil.substringBetween("tagabctag", "tag") = "abc"

*

*

* @param str

*            源字符串。

* @param tag

*            标识字符串。

* @return String 子字符串, 如果没有符合要求的,返回{@code null}。

*/

publicstaticStringsubstringBetween(Stringstr,Stringtag){

returnsubstringBetween(str,tag,tag);

}

/**

*

* 得到两个字符串中间的子字符串,只返回第一个匹配项。

*

*

*

 
 

* StringUtil.substringBetween("wx[b]yz", "[", "]") = "b"

* StringUtil.substringBetween(null, *, *)          = null

* StringUtil.substringBetween(*, null, *)          = null

* StringUtil.substringBetween(*, *, null)          = null

* StringUtil.substringBetween("", "", "")          = ""

* StringUtil.substringBetween("", "", "]")         = null

* StringUtil.substringBetween("", "[", "]")        = null

* StringUtil.substringBetween("yabcz", "", "")     = ""

* StringUtil.substringBetween("yabcz", "y", "z")   = "abc"

* StringUtil.substringBetween("yabczyabcz", "y", "z")   = "abc"

*

*

* @param str

*            源字符串

* @param open

*            起字符串。

* @param close

*            末字符串。

* @return String 子字符串, 如果没有符合要求的,返回{@code null}。

*/

publicstaticStringsubstringBetween(Stringstr,Stringopen,Stringclose){

if(str==null||open==null||close==null){

returnnull;

}

intstart=str.indexOf(open);

if(start!=INDEX_NOT_FOUND){

intend=str.indexOf(close,start+open.length());

if(end!=INDEX_NOT_FOUND){

returnstr.substring(start+open.length(),end);

}

}

returnnull;

}

/**

*

* 得到两个字符串中间的子字符串,所有匹配项组合为数组并返回。

*

*

*

 
 

* StringUtil.substringsBetween("[a][b][c]", "[", "]") = ["a","b","c"]

* StringUtil.substringsBetween(null, *, *)            = null

* StringUtil.substringsBetween(*, null, *)            = null

* StringUtil.substringsBetween(*, *, null)            = null

* StringUtil.substringsBetween("", "[", "]")          = []

*

*

* @param str

*            源字符串

* @param open

*            起字符串。

* @param close

*            末字符串。

* @return String 子字符串数组, 如果没有符合要求的,返回{@code null}。

*/

publicstaticString[]substringsBetween(Stringstr,Stringopen,

Stringclose){

if(str==null||isEmpty(open)||isEmpty(close)){

returnnull;

}

intstrLen=str.length();

if(strLen==0){

returnnewString[0];

}

intcloseLen=close.length();

intopenLen=open.length();

Listlist=newArrayList();

intpos=0;

while(pos

intstart=str.indexOf(open,pos);

if(start<0){

break;

}

start+=openLen;

intend=str.indexOf(close,start);

if(end<0){

break;

}

list.add(str.substring(start,end));

pos=end+closeLen;

}

if(list.isEmpty()){

returnnull;

}

returnlist.toArray(newString[list.size()]);

}

/**

* 功能:切换字符串中的所有字母大小写。

*

*

 
 

* StringUtil.swapCase(null)                 = null

* StringUtil.swapCase("")                   = ""

* StringUtil.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"

*

*

*

* @param str

*            源字符串

* @return String

*/

publicstaticStringswapCase(Stringstr){

if(StringUtil.isEmpty(str)){

returnstr;

}

char[]buffer=str.toCharArray();

booleanwhitespace=true;

for(inti=0;i

charch=buffer[i];

if(Character.isUpperCase(ch)){

buffer[i]=Character.toLowerCase(ch);

whitespace=false;

}elseif(Character.isTitleCase(ch)){

buffer[i]=Character.toLowerCase(ch);

whitespace=false;

}elseif(Character.isLowerCase(ch)){

if(whitespace){

buffer[i]=Character.toTitleCase(ch);

whitespace=false;

}else{

buffer[i]=Character.toUpperCase(ch);

}

}else{

whitespace=Character.isWhitespace(ch);

}

}

returnnewString(buffer);

}

/**

* 功能:截取出最后一个标志位之后的字符串.

* 如果sourceStr为empty或者expr为null,直接返回源字符串。

* 如果expr长度为0,直接返回sourceStr。

* 如果expr在sourceStr中不存在,直接返回sourceStr。

*

* @author 宋立君

* @date 2014年06月24日

* @param sourceStr

*            被截取的字符串

* @param expr

*            分隔符

* @return String

*/

publicstaticStringsubstringAfterLast(StringsourceStr,Stringexpr){

if(isEmpty(sourceStr)||expr==null){

returnsourceStr;

}

if(expr.length()==0){

returnsourceStr;

}

intpos=sourceStr.lastIndexOf(expr);

if(pos==-1){

returnsourceStr;

}

returnsourceStr.substring(pos+expr.length());

}

/**

* 功能:截取出最后一个标志位之前的字符串.

* 如果sourceStr为empty或者expr为null,直接返回源字符串。

* 如果expr长度为0,直接返回sourceStr。

* 如果expr在sourceStr中不存在,直接返回sourceStr。

*

* @author 宋立君

* @date 2014年06月24日

* @param sourceStr

*            被截取的字符串

* @param expr

*            分隔符

* @return String

*/

publicstaticStringsubstringBeforeLast(StringsourceStr,Stringexpr){

if(isEmpty(sourceStr)||expr==null){

returnsourceStr;

}

if(expr.length()==0){

returnsourceStr;

}

intpos=sourceStr.lastIndexOf(expr);

if(pos==-1){

returnsourceStr;

}

returnsourceStr.substring(0,pos);

}

/**

* 功能:截取出第一个标志位之后的字符串.

* 如果sourceStr为empty或者expr为null,直接返回源字符串。

* 如果expr长度为0,直接返回sourceStr。

* 如果expr在sourceStr中不存在,直接返回sourceStr。

*

* @author 宋立君

* @date 2014年06月24日

* @param sourceStr

*            被截取的字符串

* @param expr

*            分隔符

* @return String

*/

publicstaticStringsubstringAfter(StringsourceStr,Stringexpr){

if(isEmpty(sourceStr)||expr==null){

returnsourceStr;

}

if(expr.length()==0){

returnsourceStr;

}

intpos=sourceStr.indexOf(expr);

if(pos==-1){

returnsourceStr;

}

returnsourceStr.substring(pos+expr.length());

}

/**

* 功能:截取出第一个标志位之前的字符串.

* 如果sourceStr为empty或者expr为null,直接返回源字符串。

* 如果expr长度为0,直接返回sourceStr。

* 如果expr在sourceStr中不存在,直接返回sourceStr。

* 如果expr在sourceStr中存在不止一个,以第一个位置为准。

*

* @author 宋立君

* @date 2014年06月24日

* @param sourceStr

*            被截取的字符串

* @param expr

*            分隔符

* @return String

*/

publicstaticStringsubstringBefore(StringsourceStr,Stringexpr){

if(isEmpty(sourceStr)||expr==null){

returnsourceStr;

}

if(expr.length()==0){

returnsourceStr;

}

intpos=sourceStr.indexOf(expr);

if(pos==-1){

returnsourceStr;

}

returnsourceStr.substring(0,pos);

}

/**

* 功能:检查这个字符串是不是空字符串。

* 如果这个字符串为null或者trim后为空字符串则返回true,否则返回false。

*

* @author 宋立君

* @date 2014年06月24日

* @param chkStr

*            被检查的字符串

* @return boolean

*/

publicstaticbooleanisEmpty(StringchkStr){

if(chkStr==null){

returntrue;

}else{

return"".equals(chkStr.trim())?true:false;

}

}

/**

* 如果字符串没有超过最长显示长度返回原字符串,否则从开头截取指定长度并加...返回。

*

* @param str

*            原字符串

* @param length

*            字符串最长显示的长度

* @return 转换后的字符串

*/

publicstaticStringtrimString(Stringstr,intlength){

if(str==null){

return"";

}elseif(str.length()>length){

returnstr.substring(0,length-3)+"...";

}else{

returnstr;

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值