package com.example.hotel.util;
/**
* 2023
* @date 2023/03/11
*/
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.CharUtils;
import org.apache.commons.lang3.ObjectUtils;
import sun.misc.BASE64Decoder;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.text.Normalizer;
import java.text.Normalizer.Form;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Pattern;
/**
* 字符串工具类
*/
public class StringUtils
{
public static final String SPACE = " ";
public static final String EMPTY = "";
public static final String LF = "\n";
public static final String CR = "\r";
public static final int INDEX_NOT_FOUND = -1;
private static final int PAD_LIMIT = 8192;
public StringUtils()
{
}
/**
* 不够位数的在前面补0,保留num的长度位数字
* @param code
* @return
*/
public static String autoGenericCode(String code, int num) {
String result = "";
// 保留num的位数
// 0 代表前面补充0
// num 代表长度为4
// d 代表参数为正数型
result = String.format("%0" + num + "d", Integer.parseInt(code));
return result;
}
public static boolean isEmpty(CharSequence cs)
{
isNotNull();
return cs == null || cs.length() == 0;
}
public static boolean isNotEmpty(CharSequence cs)
{
return !isEmpty(cs);
}
public static boolean isAnyEmpty(CharSequence... css)
{
if (ArrayUtils.isEmpty(css))
{
return true;
} else
{
CharSequence[] arr$ = css;
int len$ = css.length;
for (int i$ = 0; i$ < len$; ++i$)
{
CharSequence cs = arr$[i$];
if (isEmpty(cs))
{
return true;
}
}
return false;
}
}
public static boolean isNoneEmpty(CharSequence... css)
{
return !isAnyEmpty(css);
}
public static boolean isBlank(CharSequence cs)
{
int strLen;
if (cs != null && (strLen = cs.length()) != 0)
{
for (int i = 0; i < strLen; ++i)
{
if (!Character.isWhitespace(cs.charAt(i)))
{
return false;
}
}
return true;
} else
{
return true;
}
}
public static boolean isNotBlank(CharSequence cs)
{
return !isBlank(cs);
}
public static boolean isAnyBlank(CharSequence... css)
{
if (ArrayUtils.isEmpty(css))
{
return true;
} else
{
CharSequence[] arr$ = css;
int len$ = css.length;
for (int i$ = 0; i$ < len$; ++i$)
{
CharSequence cs = arr$[i$];
if (isBlank(cs))
{
return true;
}
}
return false;
}
}
public static boolean isNoneBlank(CharSequence... css)
{
return !isAnyBlank(css);
}
public static String trim(String str)
{
return str == null ? null : str.trim();
}
public static String trimToNull(String str)
{
String ts = trim(str);
return isEmpty(ts) ? null : ts;
}
public static String trimToEmpty(String str)
{
return str == null ? "" : str.trim();
}
public static String strip(String str)
{
return strip(str, (String) null);
}
public static String stripToNull(String str)
{
if (str == null)
{
return null;
} else
{
str = strip(str, (String) null);
return str.isEmpty() ? null : str;
}
}
public static String stripToEmpty(String str)
{
return str == null ? "" : strip(str, (String) null);
}
public static String strip(String str, String stripChars)
{
if (isEmpty(str))
{
return str;
} else
{
str = stripStart(str, stripChars);
return stripEnd(str, stripChars);
}
}
public static String stripStart(String str, String stripChars)
{
int strLen;
if (str != null && (strLen = str.length()) != 0)
{
int start = 0;
if (stripChars == null)
{
while (start != strLen && Character.isWhitespace(str.charAt(start)))
{
++start;
}
} else
{
if (stripChars.isEmpty())
{
return str;
}
while (start != strLen && stripChars.indexOf(str.charAt(start)) != -1)
{
++start;
}
}
return str.substring(start);
} else
{
return str;
}
}
public static String stripEnd(String str, String stripChars)
{
int end;
if (str != null && (end = str.length()) != 0)
{
if (stripChars == null)
{
while (end != 0 && Character.isWhitespace(str.charAt(end - 1)))
{
--end;
}
} else
{
if (stripChars.isEmpty())
{
return str;
}
while (end != 0 && stripChars.indexOf(str.charAt(end - 1)) != -1)
{
--end;
}
}
return str.substring(0, end);
} else
{
return str;
}
}
public static String[] stripAll(String... strs)
{
return stripAll(strs, (String) null);
}
public static String[] stripAll(String[] strs, String stripChars)
{
int strsLen;
if (strs != null && (strsLen = strs.length) != 0)
{
String[] newArr = new String[strsLen];
for (int i = 0; i < strsLen; ++i)
{
newArr[i] = strip(strs[i], stripChars);
}
return newArr;
} else
{
return strs;
}
}
public static String stripAccents(String input)
{
if (input == null)
{
return null;
} else
{
Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
String decomposed = Normalizer.normalize(input, Form.NFD);
return pattern.matcher(decomposed).replaceAll("");
}
}
public static boolean containsWhitespace(CharSequence seq)
{
if (isEmpty(seq))
{
return false;
} else
{
int strLen = seq.length();
for (int i = 0; i < strLen; ++i)
{
if (Character.isWhitespace(seq.charAt(i)))
{
return true;
}
}
return false;
}
}
public static int indexOfAny(CharSequence cs, char... searchChars)
{
if (!isEmpty(cs) && !ArrayUtils.isEmpty(searchChars))
{
int csLen = cs.length();
int csLast = csLen - 1;
int searchLen = searchChars.length;
int searchLast = sea
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目介绍 角色:管理员、前台工作人员、保洁阿姨、客户 四种角色 客户功能: 客户注册、登录、找回密码 留言板查看和留言 浏览客房,根据入住日期和退房日期查询和预定客房 支付订单,支付已对接了支付宝沙箱支付,可可以随时关闭启动 客户可以退房,续订,取消订单等功能 管理员功能: 客房管理 客房类型管理 订单管理 入住登记管理 退房登记管理 客房清洁管理 留言管理(只有管理员可以进行留言删除) 财务管理 人员管理( 前台人员,清洁人员,客户) 角色管理,权限管理 酒店前台人员: 订单管理 入住登记管理 退房登记管理 客房清洁管理(只能查看) 留言管理,(可以留言回复,不能删除留言) 财务管理 人员管理( 只能看客户) 理、民宿信息管理、房间类型管理、房间信息管理、房间预订管理、房间退订管理、投诉反馈管理、我的收藏管理、系统管理。 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境
资源推荐
资源详情
资源评论
收起资源包目录
Java项目:酒店管理系统(java+SpringBoot+MyBatis-Plus+Html+Thymleaf+Mysql) (647个子文件)
icons.css 147KB
bootstrap.css 143KB
plugin.css 127KB
bootstrap.min.css 118KB
bootstrap.min.css 118KB
style.css 109KB
AdminLTE.css 109KB
dashboard.css 91KB
AdminLTE.min.css 89KB
AdminLTE-without-plugins.css 88KB
AdminLTE-without-plugins.min.css 72KB
froala_editor.pkgd.css 71KB
froala_editor.pkgd.min.css 60KB
loaders.css 55KB
animate.min.css 52KB
_all-skins.css 47KB
dashicons.min.css 45KB
_all-skins.min.css 41KB
royal.css 40KB
dark.css 40KB
gray.css 40KB
font-awesome.css 37KB
red.css 36KB
royal.min.css 35KB
gray.min.css 35KB
dark.min.css 35KB
froala_editor.css 34KB
red.min.css 32KB
font-awesome.min.css 30KB
froala_editor.min.css 29KB
bootstrap-theme.css 26KB
login.min.css 25KB
bootstrap-theme.min.css 23KB
pretty-checkbox.css 22KB
pretty-checkbox.min.css 19KB
AdminLTE-bootstrap-social.css 15KB
default.css 15KB
layer.css 14KB
AdminLTE-bootstrap-social.min.css 12KB
froala_style.css 9KB
image_manager.css 8KB
froala_style.min.css 8KB
image_manager.min.css 7KB
buttons.min.css 6KB
bootstrapStyle.css 6KB
highlight.css 5KB
layer.css 5KB
video.css 5KB
image.css 5KB
jquery.toast.min.css 4KB
video.min.css 4KB
table.css 4KB
image.min.css 4KB
colors.css 4KB
style.css 3KB
table.min.css 3KB
colors.min.css 3KB
loader.css 3KB
AdminLTE-select2.css 3KB
file.css 3KB
code_view.css 3KB
AdminLTE-select2.min.css 3KB
file.min.css 2KB
code_view.min.css 2KB
pace.css 2KB
pace.min.css 2KB
spell_checker.css 2KB
quick_insert.css 2KB
spell_checker.min.css 1KB
help.css 1KB
quick_insert.min.css 1KB
char_counter.css 1KB
embedly.css 1KB
special_characters.css 1KB
font_awesome.css 1KB
help.min.css 1KB
special_characters.min.css 1KB
char_counter.min.css 1KB
embedly.min.css 1KB
font_awesome.min.css 1KB
emoticons.css 897B
draggable.css 868B
emoticons.min.css 758B
image_tui.css 748B
bootstrapValidator.css 700B
bootstrapValidator.min.css 694B
line_breaker.css 681B
draggable.min.css 663B
image_tui.min.css 612B
line_breaker.min.css 574B
fullscreen.css 566B
fullscreen.min.css 489B
iconsmind.eot 1.12MB
simple-line-icons.eot 606KB
fontawesome-webfont.eot 162KB
glyphicons-halflings-regular.eot 20KB
loader.gif 269KB
loading.gif 8KB
loading-0.gif 6KB
loading-2.gif 2KB
共 647 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
beyondwild
- 粉丝: 9275
- 资源: 4903
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功