publicclassStringUtil{
/**
*处理空字符串
*
*@paramstr
*@returnString
*/
publicstaticStringdoEmpty(Stringstr){
returndoEmpty(str,"");
}
/**
*处理空字符串
*
*@paramstr
*@paramdefaultValue
*@returnString
*/
publicstaticStringdoEmpty(Stringstr,StringdefaultValue){
if(str==null||str.equalsIgnoreCase("null")
||str.trim().equals("")||str.trim().equals("-请选择-")){
str=defaultValue;
}elseif(str.startsWith("null")){
str=str.substring(4,str.length());
}
returnstr.trim();
}
/**
*处理字符串中包含的回车等特殊字符
*
*@paramdefaultValue
*@return
*/
publicstaticStringclearSpecial(StringdefaultValue){
if(!isStrTrue(defaultValue))
return"";
return defaultValue.trim().replaceAll("\r|\n|\t|*","");
}
/**
*请选择
*/
finalstaticStringPLEASE_SELECT="请选择...";
publicstaticbooleannotEmpty(Objecto){
returno!=null&&!"".equals(o.toString().trim())
&&!"null".equalsIgnoreCase(o.toString().trim())
&&!"undefined".equalsIgnoreCase(o.toString().trim())
&&!PLEASE_SELECT.equals(o.toString().trim());
}
publicstaticbooleanempty(Objecto){
returno==null||"".equals(o.toString().trim())
||"null".equalsIgnoreCase(o.toString().trim())
||"undefined".equalsIgnoreCase(o.toString().trim())
||PLEASE_SELECT.equals(o.toString().trim());
}
publicstaticbooleannum(Objecto){
intn=0;
try{
n=Integer.parseInt(o.toString().trim());
}catch(NumberFormatExceptione){
e.printStackTrace();
}
if(n>0){
returntrue;
}else{
returnfalse;
}
}
publicstaticbooleandecimal(Objecto){
doublen=0;
try{
n=Double.parseDouble(o.toString().trim());
}catch(NumberFormatExceptione){
e.printStackTrace();
}
if(n>0.0){
returntrue;
}else{
returnfalse;
}
}
/**
*给JID返回用户名
*
*@paramJid
*@return
*/
publicstaticStringgetUserNameByJid(StringJid){
if(empty(Jid)){
returnnull;
}
if(!Jid.contains("@")){
returnJid;
}
returnJid.split("@")[0];
}
/**
*给用户名返回JID
*
*@paramjidFor域名//如ahic.com.cn
*@paramuserName
*@return
*/
publicstaticStringgetJidByName(StringuserName,StringjidFor){
if(empty(jidFor)||empty(jidFor)){
returnnull;
}
returnuserName+"@"+jidFor;
}
/**
*给用户名返回JID,使用默认域名ahic.com.cn
*
*@paramuserName
*@return
*/
publicstaticStringgetJidByName(StringuserName){
StringjidFor="ahic.com.cn";
returngetJidByName(userName,jidFor);
}
/**
*根据给定的时间字符串,返回月日时分秒
*
*@paramallDatelike"yyyy-MM-ddhh:mm:ssSSS"
*@return
*/
publicstaticStringgetMonthTomTime(StringallDate){
returnallDate.substring(5,19);
}
/**
*根据给定的时间字符串,返回月日时分月到分钟
*
*@paramallDatelike"yyyy-MM-ddhh:mm:ssSSS"
*@return
*/
publicstaticStringgetMonthTime(StringallDate){
returnallDate.substring(5,16);
}
/**
*根据类型获取日期
*
*@paramtimeTypelike"yyyy-MM-dd"
*@return
*/
publicstaticStringgetTime(StringtimeType){
SimpleDateFormatformatter=newSimpleDateFormat(timeType);
DatecurDate=newDate(System.currentTimeMillis());
returnformatter.format(curDate);
}
publicstaticbooleanisNullOrEmpty(Stringstr){
if(str==null||str.length()==0)
returntrue;
else
returnfalse;
}
publicstaticbooleanisStringArrayContains(String[]stringArray,Stringsource){
//转换为list
List<String>tempList=Arrays.asList(stringArray);
//利用list的包含方法,进行判断
if(tempList.contains(source)){
returntrue;
}else{
returnfalse;
}
}
/**
*随机生成字符串
*
*@paramlength
*@return
*/
publicstaticfinalStringrandomString(intlength){
RandomrandGen=null;
char[]numbersAndLetters=null;
if(length<1){
returnnull;
}
if(randGen==null){
randGen=newRandom();
numbersAndLetters=("0123456789abcdefghijklmnopqrstuvwxyz"
+"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
//numbersAndLetters=
//("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
}
char[]randBuffer=newchar[length];
for(inti=0;i<randBuffer.length;i++){
randBuffer[i]=numbersAndLetters[randGen.nextInt(71)];
}
returnnewString(randBuffer);
}
publicstaticfinalStringrandomDataString(intlength){
RandomrandGen=null;
char[]numbersAndLetters=null;
if(length<1){
returnnull;
}
if(randGen==null){
randGen=newRandom();
numbersAndLetters=("0123456789").toCharArray();
//numbersAndLetters=
//("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
}
char[]randBuffer=newchar[length];
for(inti=0;i<randBuffer.length;i++){
randBuffer[i]=numbersAndLetters[randGen.nextInt(10)];
}
Stringdate=newString(randBuffer);
returndate;
}
//UUID+设备号序列号唯一识别码(不可变)
@SuppressLint("MissingPermission")
publicstaticStringgetMyUUID(Contextcontext){
finalTelephonyManagertm=(TelephonyManager)context
.getSystemService(Context.TELEPHONY_SERVICE);
finalStringtmDevice,tmSerial,tmPhone,androidId;
tmDevice=""+tm.getDeviceId();
tmSerial=""+tm.getSimSerialNumber();
androidId=""
+android.provider.Settings.Secure.getString(
context.getContentResolver(),
android.provider.Settings.Secure.ANDROID_ID);
UUIDdeviceUuid=newUUID(androidId.hashCode(),
((long)tmDevice.hashCode()<<32)|tmSerial.hashCode());
StringuniqueId=deviceUuid.toString();
returnuniqueId;
}
//获取可变UUID
publicstaticStringgetMyUUID(){
UUIDuuid=UUID.randomUUID();
StringuniqueId=uuid.toString();
returnuniqueId;
}
//page是否包含datas
publicstaticList<String>exist2(String[]page,String[]datas){
List<String>strs=newArrayList<String>();
for(inti=0;i<datas.length;i++){
//需要搞清楚两个数组的顺序,主要分清哪个数组中的值是否存在于哪一个数组,下面判断是datas数组中的值是否存在于page中
booleanexists=Arrays.asList(page).contains((datas[i]));
if(!exists){
strs.add(datas[i]);
}
}
returnstrs;
}
/**
*@paramactivity
*@return>0success;<=0fail
*/
publicstaticintgetStatusHeight(Activityactivity){
intstatusHeight=0;
RectlocalRect=newRect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect);
statusHeight=localRect.top;
if(0==statusHeight){
Class<?>localClass;
try{
localClass=Class.forName("com.android.internal.R$dimen");
ObjectlocalObject=localClass.newInstance();
inti5=Integer.parseInt(localClass.getField("status_bar_height").get(localObject).toString());
statusHeight=activity.getResources().getDimensionPixelSize(i5);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(IllegalAccessExceptione){
e.printStackTrace();
}catch(InstantiationExceptione){
e.printStackTrace();
}catch(NumberFormatExceptione){
e.printStackTrace();
}catch(IllegalArgumentExceptione){
e.printStackTrace();
}catch(SecurityExceptione){
e.printStackTrace();
}catch(NoSuchFieldExceptione){
e.printStackTrace();
}
}
returnstatusHeight;
}
//把一个字符串中的大写转为小写,小写转换为大写:思路1
publicstaticStringexChange(Stringstr){
StringBuffersb=newStringBuffer();
if(str!=null){
for(inti=0;i<str.length();i++){
charc=str.charAt(i);
if(Character.isUpperCase(c)){
sb.append(Character.toLowerCase(c));
}elseif(Character.isLowerCase(c)){
sb.append(Character.toUpperCase(c));
}
}
}
returnsb.toString();
}
//把一个字符串中的大写转为小写
publicstaticStringlowerCaseString(Stringstr){
returnstr.toLowerCase();
}
/***
*判断字符串是否为空
*
*@paramstrContent
*你要判断的字符串
*@return非空返回true
*/
publicstaticbooleanisStrTrue(StringstrContent){
if(strContent!=null&&!"".equals(strContent)
&&!TextUtils.isEmpty(strContent)
&&!"".equals(strContent.trim())
&&strContent.length()>0){
returntrue;
}
returnfalse;
}
/**
*截取名字
*
*@paramname
*@return
*/
publicstaticStringdoubleName(Stringname){
//截取字符串
//if(name.length()==2){
//returnname;
//}elseif(name.length()>2){
//name=name.substring(name.length()-2,name.length());
//returnname;
//}
//return"";
returnname;
}
//判断手机格式是否正确
publicstaticbooleanisMobileNO(Stringmobiles){
Patternp=Pattern
.compile("^((13[0-9])|(15[0-9])|(18[0-9])|(17[0-9]))\\d{8}$");
Matcherm=p.matcher(mobiles);
returnm.matches();
}
//判断email格式是否正确
publicstaticbooleanisEmail(Stringemail){
Stringstr="^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|"+
"(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
Patternp=Pattern.compile(str);
Matcherm=p.matcher(email);
returnm.matches();
}
}