package com.cn.travel.utils;
import java.util.UUID;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 说明:常用工具
*
*
* @version
*/
public class Tools {
/**
* 随机生成六位数验证码
* @return
*/
public static int getRandomNum(){
Random r = new Random();
return r.nextInt(900000)+100000;//(Math.random()*(999999-100000)+100000)
}
/**
* 检测字符串是否不为空(null,"","null")
* @param s
* @return 不为空则返回true,否则返回false
*/
public static boolean notEmpty(String s){
return s!=null && !"".equals(s) && !"null".equals(s);
}
/**
* 检测字符串是否不为空(null,"","null")
* @param s
* @return 不为空则返回true,否则返回false
*/
public static boolean notEmpty(Object s){
return s!=null && !"".equals(s) && !"null".equals(s);
}
/**
* 检测字符串是否为空(null,"","null")
* @param s
* @return 为空则返回true,不否则返回false
*/
public static boolean isEmpty(String s){
return s==null || "".equals(s) || "null".equals(s);
}
/**
* 检测字符串是否为空(null,"","null")
* @param s
* @return 为空则返回true,不否则返回false
*/
public static boolean isEmpty(Object s){
return s==null || "".equals(s) || "null".equals(s);
}
/**
* 字符串转换为字符串数组
* @param str 字符串
* @param splitRegex 分隔符
* @return
*/
public static String[] str2StrArray(String str,String splitRegex){
if(isEmpty(str)){
return null;
}
return str.split(splitRegex);
}
/**
* 用默认的分隔符(,)将字符串转换为字符串数组
* @param str 字符串
* @return
*/
public static String[] str2StrArray(String str){
return str2StrArray(str,",\\s*");
}
/**
* 按照yyyy-MM-dd HH:mm:ss的格式,日期转字符串
* @param date
* @return yyyy-MM-dd HH:mm:ss
*/
public static String date2Str(Date date){
return date2Str(date,"yyyy-MM-dd HH:mm:ss");
}
/**
* 按照yyyy-MM-dd HH:mm:ss的格式,字符串转日期
* @param date
* @return
*/
public static Date str2Date(String date){
if(notEmpty(date)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return new Date();
}else{
return null;
}
}
/**
* 按照参数format的格式,日期转字符串
* @param date
* @param format
* @return
*/
public static String date2Str(Date date,String format){
if(date!=null){
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}else{
return "";
}
}
/**
* 把时间根据时、分、秒转换为时间段
* @param StrDate
*/
public static String getTimes(String StrDate){
String resultTimes = "";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now;
try {
now = new Date();
Date date=df.parse(StrDate);
long times = now.getTime()-date.getTime();
long day = times/(24*60*60*1000);
long hour = (times/(60*60*1000)-day*24);
long min = ((times/(60*1000))-day*24*60-hour*60);
long sec = (times/1000-day*24*60*60-hour*60*60-min*60);
StringBuffer sb = new StringBuffer();
//sb.append("发表于:");
if(hour>0 ){
sb.append(hour+"小时前");
} else if(min>0){
sb.append(min+"分钟前");
} else{
sb.append(sec+"秒前");
}
resultTimes = sb.toString();
} catch (ParseException e) {
e.printStackTrace();
}
return resultTimes;
}
/**
* 写txt里的单行内容
* @param fileP 文件路径
* @param content 写入的内容
*/
public static void writeFile(String fileP,String content){
String filePath = String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../"; //项目路径
filePath = (filePath.trim() + fileP.trim()).substring(6).trim();
if(filePath.indexOf(":") != 1){
filePath = File.separator + filePath;
}
try {
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(filePath),"utf-8");
BufferedWriter writer=new BufferedWriter(write);
writer.write(content);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 验证邮箱
* @param email
* @return
*/
public static boolean checkEmail(String email){
boolean flag = false;
try{
String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher(email);
flag = matcher.matches();
}catch(Exception e){
flag = false;
}
return flag;
}
/**
* 验证手机号码
* @param mobileNumber
* @return
*/
public static boolean checkMobileNumber(String mobileNumber){
boolean flag = false;
try{
Pattern regex = Pattern.compile("^1[3|4|5|7|8][0-9]{9}$");
Matcher matcher = regex.matcher(mobileNumber);
flag = matcher.matches();
}catch(Exception e){
flag = false;
}
return flag;
}
/**
* 读取txt里的单行内容
* @param fileP 文件路径
*/
public static String readTxtFile(String fileP) {
try {
String filePath = String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../"; //项目路径
filePath = filePath.replaceAll("file:/", "");
filePath = filePath.replaceAll("%20", " ");
filePath = filePath.trim() + fileP.trim();
if(filePath.indexOf(":") != 1){
filePath = File.separator + filePath;
}
String encoding = "utf-8";
File file = new File(filePath);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), encoding); // 考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while ((lineTxt = bufferedReader.readLine()) != null) {
return lineTxt;
}
read.close();
}else{
System.out.println("找不到指定的文件,查看此路径是否正确:"+filePath);
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
}
return "";
}
/**
* 校验字符串是否为数字
* @param str
* @return
*/
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9.]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}
/**
* 自动生成32位的UUid,对应数据库的主键id进行插入用。
* @return
*/
public static String getUUID() {
return UUID.randomUUID().toString().replace("-", "");
}
public static void main(String[] args) {
System.out.println(getRandomNum());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
## 一、项目介绍 基于Spring Boo的旅游信息管理系统 项目分前后台 前台 地址:http://localhost/index 账号:user 密码:123456 后台 地址:http://localhost/login 账号:root 密码:123456 功能模块:旅游路线、旅游景点、旅游酒店、旅游车票、旅游保险、旅游策略、订单管理、留言管理、数据分析等等。 ## 二、软件架构 ### 2.1 基础架构 1. JDK8 2. Mysql5 或 Mysql8 3. maven 任何版本 ### 2.2 后端技术栈 1. Spring Boot 2. SpringMVC 3. Mybatis
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot开发的旅游网站(源码+数据库) (1427个子文件)
Tools.class 7KB
StrategyController.class 7KB
TravelRouteController.class 6KB
UserPortalController.class 6KB
ScenicSpotController.class 6KB
InsuranceController.class 6KB
HotelController.class 6KB
CarController.class 6KB
HotelPortalController.class 6KB
ScenicSpotPortalController.class 5KB
UserController.class 5KB
TravelRoutePortalController.class 5KB
InsurancePortalController.class 5KB
CarPortalController.class 5KB
AdminController.class 5KB
MessageController.class 5KB
DataController.class 5KB
OrderController.class 4KB
OrderService.class 4KB
MessagePortalController.class 4KB
MessageService.class 4KB
InsuranceService.class 4KB
TravelRouteService.class 4KB
ScenicSpotService.class 4KB
CarService.class 4KB
HotelService.class 3KB
UserService.class 3KB
StrategyService.class 3KB
Order.class 3KB
OrderPortalController.class 3KB
AdminService.class 3KB
LoginController.class 3KB
CarSqlProvider.class 3KB
OrderSqlProvider.class 3KB
PageBean.class 3KB
InsuranceSqlProvider.class 3KB
TravelRouteSqlProvider.class 3KB
ScenicSpotSqlProvider.class 3KB
TravelRoute.class 3KB
StrategyPortalController.class 3KB
Car.class 3KB
UserSqlProvider.class 3KB
HotelSqlProvider.class 2KB
PageParam.class 2KB
StrategySqlProvider.class 2KB
ManagerController.class 2KB
BaseController.class 2KB
ScenicSpot.class 2KB
MessageSqlProvider.class 2KB
AdminSqlProvider.class 2KB
Hotel.class 2KB
WebAppConfig.class 2KB
UserDao.class 2KB
Insurance.class 2KB
ManagerInterceptor.class 2KB
User.class 2KB
InsuranceDao.class 2KB
TravelRouteDao.class 2KB
OrderDao.class 2KB
ScenicSpotDao.class 2KB
CarDao.class 2KB
BaseDomain.class 2KB
AdminDao.class 2KB
StrategyDao.class 2KB
TravelApplicationTests.class 2KB
HotelDao.class 2KB
MessageDao.class 2KB
Strategy.class 2KB
Message.class 2KB
IndexController.class 2KB
TravelApplication.class 1KB
Admin.class 1KB
MybatisConf.class 1KB
IOrderService.class 1KB
IMessageService.class 1KB
IUserService.class 979B
IScenicSpotService.class 946B
ITravelRouteService.class 932B
IInsuranceService.class 906B
UserCenterController.class 897B
IStrategyService.class 893B
IHotelService.class 854B
IAdminService.class 853B
Porvice.class 837B
ICarService.class 828B
AttentionController.class 634B
BaseDao.class 345B
IBaseDomainService.class 144B
common.css 42KB
common.css 42KB
layui.css 31KB
layui.css 31KB
layer.css 14KB
layer.css 14KB
laydate.css 8KB
laydate.css 8KB
layui.mobile.css 8KB
layui.mobile.css 8KB
main.css 7KB
main.css 7KB
共 1427 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
资源评论
Java旅途
- 粉丝: 1w+
- 资源: 472
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 随机森林RF葡萄酒分类,随机森林二分类(代码完整,数据齐全)
- 香蕉新鲜度等级识别香蕉成熟度识别分类数据集1186张3类别.7z
- 香蕉成熟度识别分类数据集13478张4类别.7z
- 安卓Android图书馆座位占座app设计可导入Studio源码案例设计.zip
- 安卓Android汽车票售票订票app设计可导入Studio源码案例设计.zip
- 安卓android高校开放式实验室管理app可导入Studio源码案例设计.zip
- 安卓Android车辆运输信息管理App可升级Studio源码案例设计.zip
- Android Studio移动应用开发.zip
- android studio-GIT.zip
- 优先队列式分支限界法解决旅行商问题.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功