/**
* Copyright 2019-2021 管理员(admin@admin.com).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.qinhailin.common.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
* 字符串工具类
* @author SAMONHUA
*
*/
@SuppressWarnings("deprecation")
public class StrUtils {
/**
* 判断字符串是否为空(包括null、""、"null")
* @param s 需检查的字符串
* @return
*/
public static boolean isNull(String s)
{
return s == null || s.equals("") || s.equalsIgnoreCase("null") || s.equalsIgnoreCase("undefined");
}
public static boolean isNotNull(String s)
{
return !isNull(s);
}
public static String trim(String s)
{
if (s == null)
return s;
else
return s.trim();
}
/*
"^\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\d+$" //整数
"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\d+)(\.\d+)?$" //浮点数
"^[A-Za-z]+$" //由26个英文字母组成的字符串
"^[A-Z]+$" //由26个英文字母的大写组成的字符串
"^[a-z]+$" //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串
"^\w+$" //由数字、26个英文字母或者下划线组成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址
YYYY-MM-DD基本上把闰年和2月等的情况都考虑进去了
^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$
*/
/**
* 判断字符串是否是数字(正负整数、浮点数、0)
* @param s 需检查的字符串
* @return true数字
*/
public static boolean isNumber(String s)
{
if (StrUtils.isNull(s))
{
return false;
}
if (s.matches("^(-?\\d+)(\\.\\d+)?$"))
{
return true;
}
return false;
}
/**
* 判断字符串是否是正负整数、0
* @param s 需检查的字符串
* @return true数字
*/
public static boolean isInteger(String s)
{
if(isNotNull(s))
return s.matches("^-?\\d+$");
else
return false;
}
/**
* 判断字符串是否是合法日期
* @param s 需检查的字符串。格式:yyyy-MM-dd
* @return true日期
*/
public static boolean isDate(String s)
{
if(isNotNull(s))
return s.matches("^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$");
else
return false;
}
/**
* 判断字符串是否是合法日期(含时间)
* @param s 需检查的字符串。格式:yyyy-MM-dd HH:mm:ss
* @return true日期
*/
public static boolean isDateTime(String s)
{
if(isNotNull(s))
return s.matches("^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$");
//return s.matches("^(?ni:(?=\\d)((?'year'((1[6-9])|([2-9]\\d))\\d\\d)(?'sep'[/.-])(?'month'0?[1-9]|1[012])\\2(?'day'((?<!(\\2((0?[2469])|11)\\2))31)|(?<!\\2(0?2)\\2)(29|30)|((?<=((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00)\\2\\3\\2)29)|((0?[1-9])|(1\\d)|(2[0-8])))(?:(?=\\x20\\d)\\x20|$))?((?<time>((0?[1-9]|1[012])(:[0-5]\\d){0,2}(\\x20[AP]M))|([01]\\d|2[0-3])(:[0-5]\\d){1,2}))?)$");
else
return false;
}
/**
* 判断字符串是否是电话号码(11位手机号码,3-4位区号,7-8位直播号码,1-4位分机号)
* @param s 需检查的字符串
* @return
*/
public static boolean isPhoneNo(String s)
{
if(isNotNull(s))
return s.matches("((\\d{11})|^((\\d{7,8})|(\\d{4}|\\d{3})-(\\d{7,8})|(\\d{4}|\\d{3})-(\\d{7,8})-(\\d{4}|\\d{3}|\\d{2}|\\d{1})|(\\d{7,8})-(\\d{4}|\\d{3}|\\d{2}|\\d{1}))$)");
else
return false;
}
/**
* 判断字符串是否是手机号码
* @param s 需检查的字符串
* @return
*/
public static boolean isMobilePhoneNo(String s)
{
if(isNotNull(s))
return s.matches("^13\\d{9}$");
else
return false;
}
/**
* 判断字符串是否是邮箱地址
* @param s 需检查的字符串
* @return
*/
public static boolean isEMail(String s)
{
if(isNotNull(s))
return s.matches("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$");
else
return false;
}
/**
* 判断字符串是否是网址
* @param s 需检查的字符串
* @return
*/
public static boolean isURL(String s)
{
if(isNotNull(s))
return s.matches("^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$");
else
return false;
}
/**
* 判断字符串是否是IP地址
* @param s 需检查的字符串
* @return
*/
public static boolean isIP(String s)
{
if(isNotNull(s))
return s.matches("^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$");
else
return false;
}
/**
* 判断字符串是否是有效变量名称
* @param s 需检查的字符串
* @return
*/
public static boolean isVariableName(String s)
{
if(isNotNull(s))
return s.matches("^([a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)");
else
return false;
}
/**
* 判断两个字符是否相等。
* @param c1 字符1
* @param c2 字符2
* @return 若是英文字母,不区分大小写,相等true,不等返回false;<br/>
* 若不是则区分,相等返回true,不等返回false。
*/
private static boolean isEqualsIgnoreCase(char c1, char c2){
//字母小写 字母大写
if (((97 <= c1 && c1 <= 122) || (65 <= c1 && c1 <= 90))
&& ((97 <= c2 && c2 <= 122) || (65 <= c2 && c2 <= 90))
&& ((c1-c2 == 32) || (c2-c1 == 32))) {
return true;
} else if (c1 == c2) {
return true;
}
return false;
}
/**
* 返回指定子字符串在此字符串中第一次出
没有合适的资源?快使用搜索试试~ 我知道了~
基于Mapreduce的气候数据分析.zip
共1080个文件
java:170个
class:166个
png:160个
需积分: 5 3 下载量 175 浏览量
2024-01-04
10:04:21
上传
评论
收藏 67.72MB ZIP 举报
温馨提示
基于Mapreduce的气候数据分析
资源推荐
资源详情
资源评论
收起资源包目录
基于Mapreduce的气候数据分析.zip (1080个子文件)
StrUtils.class 16KB
BaseService.class 13KB
BaseController.class 12KB
SysOrgController.class 12KB
SysRoleController.class 11KB
SysUserController.class 11KB
SysFuncController.class 10KB
EchartData.class 9KB
PortalController.class 9KB
CodeService.class 8KB
CodeController.class 7KB
BaseSysUser.class 7KB
FileService.class 7KB
BaseCropsDay.class 7KB
DbService.class 7KB
SqlController.class 7KB
MainConfig.class 7KB
DataDictionaryValueController.class 6KB
BusinessController.class 6KB
SysUserService.class 6KB
BaseSysFunction.class 6KB
BaseSysOrg.class 6KB
IndexController.class 5KB
Grid.class 5KB
SysFuncService.class 5KB
ViewController.class 5KB
ExcelKit.class 5KB
BaseCropsTarget.class 5KB
SysRoleService.class 5KB
BaseSysRole.class 5KB
BaseCropsDayDetail.class 4KB
BaseFileUploaded.class 4KB
IdWorker.class 4KB
VerifyCodeKit.class 4KB
Feedback.class 4KB
Chart.class 4KB
BaseSysLog.class 4KB
RSAKit.class 4KB
CityController.class 4KB
CropsDayController.class 4KB
DataDictionaryController.class 4KB
CropsTargetController.class 4KB
CropsDayDetailController.class 4KB
BigDataController.class 4KB
BaseCropsType.class 4KB
CropsNotifyController.class 4KB
CropsTypeController.class 4KB
BaseDataDictionaryValue.class 4KB
IdKit.class 4KB
SysUserRoleService.class 4KB
Base64.class 4KB
TableScanner.class 4KB
CityDaoImpl.class 3KB
BaseDataDictionary.class 3KB
BaseCropsNotify.class 3KB
CropsDayService.class 3KB
SysTreeController.class 3KB
LoginController.class 3KB
TreeNode.class 3KB
XssHttpServletRequestWrapper.class 3KB
CollectWeatherServiceImpl.class 3KB
SysOrgService.class 3KB
GeneratorKit.class 3KB
UUidUtiles.class 3KB
Pager.class 3KB
RegisterService.class 3KB
LoginService.class 2KB
ParseCsvUtils.class 2KB
SysRoleFuncService.class 2KB
WeatherDaoImpl.class 2KB
ViewTempController.class 2KB
SysLogController.class 2KB
BaseSysRoleFunction.class 2KB
BaseSysUserRole.class 2KB
VisitorImpl.class 2KB
VisitorUtil.class 2KB
WeatherContentInfoRowMapper.class 2KB
IpKit.class 2KB
LoginUserImpl.class 2KB
BusinessService.class 2KB
CityServiceImpl.class 2KB
MyDruidFilter.class 2KB
SqlKit.class 2KB
TokenCacheImpl.class 2KB
SysLogService.class 2KB
CityRowMapper.class 2KB
Ureport2BuildinDatasource.class 2KB
RegisterController.class 2KB
WeatherDataJob.class 2KB
SessionInterceptor.class 2KB
RestConfiguration.class 2KB
TokenService.class 1KB
LoggerInterceptor.class 1KB
EchartController.class 1KB
DataDictionaryService.class 1KB
WeatherConsumer.class 1KB
CropsDayDetailService.class 1KB
DruidKit.class 1KB
CropsNotifyService.class 1KB
CropsTargetService.class 1KB
共 1080 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
青铜状态
- 粉丝: 0
- 资源: 53
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功