publicclassCheckForAllUtils{
/**
* 判断字符串是否为空
*/
publicstaticbooleanisNotNull(Stringstring) {
if(string!=null) {
returntrue;
}else{
returnfalse;
}
}
/**
* 判断字符串是否为空和是否等于""
*/
publicstaticbooleanisNotNull2(Stringstring) {
if(string!=null&&!string.equals("")) {
returntrue;
}else{
returnfalse;
}
}
/*
* 判断字符串是否为空和是否等于""和"null"
*/
publicstaticbooleanisNotNullAndOther(Stringstring,Stringstring2) {
if(string!=null&&!string.equals(string2)) {
//不为空且不与string2想等时返回true
returntrue;
}else{
returnfalse;
}
}
/**
* 字符串为数字
*/
publicstaticbooleanisNumber(Stringnumber) {
if(TextUtils.isEmpty(number))
returnfalse;
else{
Patternp=Pattern.compile("[0-9]*");
Matcherm=p.matcher(number);
if(m.matches())
returntrue;
else
returnfalse;
}
}
/**
* 带小数的数字
*/
publicstaticbooleanisDecimal(Stringnumber) {
if(TextUtils.isEmpty(number))
returnfalse;
else{
Patternp=Pattern.compile("^[-+]?[0-9]+(\\.[0-9]+)?$");
Matcherm=p.matcher(number);
if(m.matches())
returntrue;
else
returnfalse;
}
}
/**
* 字符串为字母
*/
publicstaticbooleanisLetter(Stringletter) {
if(TextUtils.isEmpty(letter))
returnfalse;
else
returnletter.matches("^[a-zA-Z]*");
}
/**
* 字符串是否含有汉字汉字
*/
publicstaticbooleanhasChinese(Stringstr) {
if(TextUtils.isEmpty(str))
returnfalse;
else{
StringregEx="[\u4e00-\u9fa5]";
Patternp=Pattern.compile(regEx);
Matcherm=p.matcher(str);
if(m.find())
returntrue;
else
returnfalse;
}
}
/**
* 判断数字是奇数还是偶数
*/
publicstaticintisEvenNumbers(Stringeven) {
if(!TextUtils.isEmpty(even)&&isNumber(even)) {
inti=Integer.parseInt(even);
if(i%2==0) {
//偶数
return2;
}else{
//奇数
return1;
}
}else{
//不是奇数也不是偶数
return0;
}
}
/**
* 判断字符串是否字母开头
*/
publicstaticbooleanisLetterBegin(Strings) {
if(TextUtils.isEmpty(s))
returnfalse;
else{
charc=s.charAt(0);
inti=(int) c;
if((i>=65&&i<=90)||(i>=97&&i<=122)) {
returntrue;
}else{
returnfalse;
}
}
}
/**
* 判断字符串是否以指定内容开头
*/
publicstaticbooleanstartWithMytext(Stringmytext,Stringbegin) {
if(TextUtils.isEmpty(mytext)&&TextUtils.isEmpty(begin))
returnfalse;
else{
if(mytext.startsWith(begin))
returntrue;
else
returnfalse;
}
}
/**
* 判断字符串是否以指定内容结尾
*/
publicstaticbooleanendWithMytext(Stringmytext,Stringend) {
if(TextUtils.isEmpty(mytext)&&TextUtils.isEmpty(end))
returnfalse;
else{
if(mytext.endsWith(end))
returntrue;
else
returnfalse;
}
}
/**
* 判断字符串中是否含有指定内容
*/
publicstaticbooleanhasMytext(Stringstring,Stringmytext) {
if(TextUtils.isEmpty(string)&&TextUtils.isEmpty(mytext))
returnfalse;
else{
if(string.contains(mytext))
returntrue;
else
returnfalse;
}
}
/**
* 验证是否是手机格式
*/
publicstaticbooleanisMobileNO(Stringmobiles) {
/*
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189、(1349卫通)
新增:17开头的电话号码,如170、177
总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9
*/
StringtelRegex="[1][3578]\\d{9}";//"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
if(TextUtils.isEmpty(mobiles))returnfalse;
elsereturnmobiles.matches(telRegex);
}
/**
* 验证是否是邮箱格式格式
*/
publicstaticbooleanisEmailAdd(Stringemail) {
StringemailRegex="^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
if(TextUtils.isEmpty(email))
returnfalse;
else
returnemail.matches(emailRegex);
}
/**
* 1,判断是否有网络连接
*
*@paramcontext
*@return
*/
publicstaticbooleanisNetworkConnected(Contextcontext) {
if(context!=null) {
ConnectivityManagermConnectivityManager=(ConnectivityManager)
context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfomNetworkInfo=mConnectivityManager
.getActiveNetworkInfo();
if(mNetworkInfo!=null) {
returnmNetworkInfo.isAvailable();
}
}
returnfalse;
}
/**
* 2.判断WIFI网络是否可用
*
*@paramcontext
*@return
*/
publicstaticbooleanisWifiConnected(Contextcontext) {
if(context!=null) {
ConnectivityManagermConnectivityManager=(ConnectivityManager)
context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfomWiFiNetworkInfo=mConnectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(mWiFiNetworkInfo!=null) {
returnmWiFiNetworkInfo.isAvailable();
}
}
returnfalse;
}
/**
* 3.判断MOBILE网络是否可用
*
*@paramcontext
*@return
*/
publicstaticbooleanisMobileConnected(Contextcontext) {
if(context!=null) {
ConnectivityManagermConnectivityManager=(ConnectivityManager)
context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfomMobileNetworkInfo=mConnectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(mMobileNetworkInfo!=null) {
returnmMobileNetworkInfo.isAvailable();
}
}
returnfalse;
}
/**
* 判断网络类型
*
*@paramcontext
*@return-1:没有网络 1:WIFI网络2:wap网络3:net网络
*/
publicstaticintgetNetType(Contextcontext) {
intnetType=-1;
ConnectivityManagerconnMgr=(ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfonetworkInfo=connMgr.getActiveNetworkInfo();
if(networkInfo==null) {
returnnetType;
}
intnType=networkInfo.getType();
if(nType==ConnectivityManager.TYPE_MOBILE) {
if(networkInfo.getExtraInfo().toLowerCase().equals("cmnet")) {
netType=3;
}else{
netType=2;
}
}elseif(nType==ConnectivityManager.TYPE_WIFI) {
netType=1;
}
returnnetType;
}
/**
* 判断当前应用程序处于前台还是后台
*/
publicstaticbooleanisBackground(Contextcontext) {
ActivityManageractivityManager=(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List
for(ActivityManager.RunningAppProcessInfoappProcess:appProcesses) {
if(appProcess.processName.equals(context.getPackageName())) {
if(appProcess.importance==ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
//后台
returntrue;
}else{
//前台
returnfalse;
}
}
}
returnfalse;
}
/*用来判断服务是否运行.
* @param context
* @param className 判断的服务名字
* @return true 在运行 false 不在运行
*/
publicstaticbooleanisServiceRunning(ContextmContext,StringclassName) {
booleanisRunning=false;
ActivityManageractivityManager=(ActivityManager)
mContext.getSystemService(Context.ACTIVITY_SERVICE);
List
=activityManager.getRunningServices(30);
if(!(serviceList.size()>0)) {
returnfalse;
}
for(inti=0; i<serviceList.size(); i++) {
if(serviceList.get(i).service.getClassName().equals(className)==true) {
isRunning=true;
break;
}
}
returnisRunning;
}
/**
* 判断apk是否安装
*/
publicstaticbooleancheckApkExist(Contextcontext,StringpackageName) {
if(packageName==null||"".equals(packageName))
returnfalse;
try{
ApplicationInfoinfo=context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
returntrue;
}catch(PackageManager.NameNotFoundExceptione) {
returnfalse;
}
}
/**
* 判断sd卡是否可以用
*/
publicstaticbooleansdCardExists() {
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
//sd card 可用
returntrue;
}else{
//当前不可用
returnfalse;
}
}
/**
* 判断一个文件是否存在
*/
publicstaticbooleanisFileExists(Stringpath) {
try{
Filef=newFile(path);
if(!f.exists()) {
returnfalse;
}
}catch(Exceptione) {
returnfalse;
}
returntrue;
}
//身份证号码验证:start
/**
* 功能:身份证的有效验证
*
*@paramIDStr 身份证号
*@return有效:返回"" 无效:返回String信息
*@throwsParseException
*/
publicstaticStringIDCardValidate(StringIDStr)throwsParseException{
StringerrorInfo="";//记录错误信息
String[]ValCodeArr={"1","0","x","9","8","7","6","5","4",
"3","2"};
String[]Wi={"7","9","10","5","8","4","2","1","6","3","7",
"9","10","5","8","4","2"};
StringAi="";
//================ 号码的长度 15位或18位 ================
if(IDStr.length()!=15&&IDStr.length()!=18) {
errorInfo="身份证号码长度应该为15位或18位。";
returnerrorInfo;
}
//=======================(end)========================
//================ 数字 除最后以为都为数字 ================
if(IDStr.length()==18) {
Ai=IDStr.substring(0,17);
}elseif(IDStr.length()==15) {
Ai=IDStr.substring(0,6)+"19"+IDStr.substring(6,15);
}
if(isNumeric(Ai)==false) {
errorInfo="身份证15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";
returnerrorInfo;
}
//=======================(end)========================
//================ 出生年月是否有效 ================
StringstrYear=Ai.substring(6,10);//年份
StringstrMonth=Ai.substring(10,12);//月份
StringstrDay=Ai.substring(12,14);//月份
if(isDataFormat(strYear+"-"+strMonth+"-"+strDay)==false) {
errorInfo="身份证生日无效。";
returnerrorInfo;
}
GregorianCalendargc=newGregorianCalendar();
SimpleDateFormats=newSimpleDateFormat("yyyy-MM-dd");
if((gc.get(Calendar.YEAR)-Integer.parseInt(strYear))>150
||(gc.getTime().getTime()-s.parse(
strYear+"-"+strMonth+"-"+strDay).getTime())<0) {
errorInfo="身份证生日不在有效范围。";
returnerrorInfo;
}
if(Integer.parseInt(strMonth)>12||Integer.parseInt(strMonth)==0) {
errorInfo="身份证月份无效";
returnerrorInfo;
}
if(Integer.parseInt(strDay)>31||Integer.parseInt(strDay)==0) {
errorInfo="身份证日期无效";
returnerrorInfo;
}
//=====================(end)=====================
//================ 地区码时候有效 ================
Hashtableh=GetAreaCode();
if(h.get(Ai.substring(0,2))==null) {
errorInfo="身份证地区编码错误。";
returnerrorInfo;
}
//==============================================
//================ 判断最后一位的值 ================
intTotalmulAiWi=0;
for(inti=0; i<17; i++) {
TotalmulAiWi=TotalmulAiWi
+Integer.parseInt(String.valueOf(Ai.charAt(i)))
*Integer.parseInt(Wi[i]);
}
intmodValue=TotalmulAiWi%11;
StringstrVerifyCode=ValCodeArr[modValue];
Ai=Ai+strVerifyCode;
if(IDStr.length()==18) {
if(Ai.equals(IDStr)==false) {
errorInfo="身份证无效,不是合法的身份证号码";
returnerrorInfo;
}
}else{
return"";
}
//=====================(end)=====================
return"";
}
/**
* 功能:判断字符串是否为数字
*
*@paramstr
*@return
*/
privatestaticbooleanisNumeric(Stringstr) {
Patternpattern=Pattern.compile("[0-9]*");
MatcherisNum=pattern.matcher(str);
if(isNum.matches()) {
returntrue;
}else{
returnfalse;
}
}
/**
* 功能:设置地区编码
*
*@returnHashtable 对象
*/
privatestaticHashtableGetAreaCode() {
Hashtablehashtable=newHashtable();
hashtable.put("11","北京");
hashtable.put("12","天津");
hashtable.put("13","河北");
hashtable.put("14","山西");
hashtable.put("15","内蒙古");
hashtable.put("21","辽宁");
hashtable.put("22","吉林");
hashtable.put("23","黑龙江");
hashtable.put("31","上海");
hashtable.put("32","江苏");
hashtable.put("33","浙江");
hashtable.put("34","安徽");
hashtable.put("35","福建");
hashtable.put("36","江西");
hashtable.put("37","山东");
hashtable.put("41","河南");
hashtable.put("42","湖北");
hashtable.put("43","湖南");
hashtable.put("44","广东");
hashtable.put("45","广西");
hashtable.put("46","海南");
hashtable.put("50","重庆");
hashtable.put("51","四川");
hashtable.put("52","贵州");
hashtable.put("53","云南");
hashtable.put("54","西藏");
hashtable.put("61","陕西");
hashtable.put("62","甘肃");
hashtable.put("63","青海");
hashtable.put("64","宁夏");
hashtable.put("65","新疆");
hashtable.put("71","台湾");
hashtable.put("81","香港");
hashtable.put("82","澳门");
hashtable.put("91","国外");
returnhashtable;
}
/**
* 验证日期字符串是否是YYYY-MM-DD格式
*
*@paramstr
*@return
*/
publicstaticbooleanisDataFormat(Stringstr) {
booleanflag=false;
//String regxStr="[1-9][0-9]{3}-[0-1][0-2]-((0[1-9])|([12][0-9])|(3[01]))";
StringregxStr="^((\\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-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$";
Patternpattern1=Pattern.compile(regxStr);
MatcherisNo=pattern1.matcher(str);
if(isNo.matches()) {
flag=true;
}
returnflag;
}
//身份证号码验证:end
}
demo地址:https://github.com/BestSingerInSiHui/CheckAllUtilsDemo
网友评论