package Medical.framework.Util;
import java.util.Collection;
import java.util.Map;
/**
* 字符串工具类
*/
public class StringUtils {
/**
* 空字符串
*/
private static final String NULLSTR = "";
/**
* 下划线
*/
private static final char SEPARATOR = '_';
/**
* 获取参数不为空值
*
* @param value defaultValue 要判断的value
* @return value 返回值
*/
public static <T> T nvl(T value, T defaultValue) {
return value != null ? value : defaultValue;
}
/**
* * 判断一个Collection是否为空, 包含List,Set,Queue
*
* @param coll 要判断的Collection
* @return true:为空 false:非空
*/
public static boolean isEmpty(Collection<?> coll) {
return isNull(coll) || coll.isEmpty();
}
/**
* * 判断一个Collection是否非空,包含List,Set,Queue
*
* @param coll 要判断的Collection
* @return true:非空 false:空
*/
public static boolean isNotEmpty(Collection<?> coll) {
return !isEmpty(coll);
}
/**
* * 判断一个对象数组是否为空
*
* @param objects 要判断的对象数组
* * @return true:为空 false:非空
*/
public static boolean isEmpty(Object[] objects) {
return isNull(objects) || (objects.length == 0);
}
/**
* * 判断一个对象数组是否非空
*
* @param objects 要判断的对象数组
* @return true:非空 false:空
*/
public static boolean isNotEmpty(Object[] objects) {
return !isEmpty(objects);
}
/**
* * 判断一个Map是否为空
*
* @param map 要判断的Map
* @return true:为空 false:非空
*/
public static boolean isEmpty(Map<?, ?> map) {
return isNull(map) || map.isEmpty();
}
/**
* * 判断一个Map是否为空
*
* @param map 要判断的Map
* @return true:非空 false:空
*/
public static boolean isNotEmpty(Map<?, ?> map) {
return !isEmpty(map);
}
/**
* * 判断一个字符串是否为空串
*
* @param str String
* @return true:为空 false:非空
*/
public static boolean isEmpty(String str) {
return isNull(str) || NULLSTR.equals(str.trim());
}
/**
* * 判断一个字符串是否为非空串
*
* @param str String
* @return true:非空串 false:空串
*/
public static boolean isNotEmpty(String str) {
return !isEmpty(str);
}
/**
* * 判断一个对象是否为空
*
* @param object Object
* @return true:为空 false:非空
*/
public static boolean isNull(Object object) {
return object == null;
}
/**
* * 判断一个对象是否非空
*
* @param object Object
* @return true:非空 false:空
*/
public static boolean isNotNull(Object object) {
return !isNull(object);
}
/**
* * 判断一个对象是否是数组类型(Java基本型别的数组)
*
* @param object 对象
* @return true:是数组 false:不是数组
*/
public static boolean isArray(Object object) {
return isNotNull(object) && object.getClass().isArray();
}
/**
* 去空格
*/
public static String trim(String str) {
return (str == null ? "" : str.trim());
}
/**
* 截取字符串
*
* @param str 字符串
* @param start 开始
* @return 结果
*/
public static String substring(final String str, int start) {
if (str == null) {
return NULLSTR;
}
if (start < 0) {
start = str.length() + start;
}
if (start < 0) {
start = 0;
}
if (start > str.length()) {
return NULLSTR;
}
return str.substring(start);
}
/**
* 截取字符串
*
* @param str 字符串
* @param start 开始
* @param end 结束
* @return 结果
*/
public static String substring(final String str, int start, int end) {
if (str == null) {
return NULLSTR;
}
if (end < 0) {
end = str.length() + end;
}
if (start < 0) {
start = str.length() + start;
}
if (end > str.length()) {
end = str.length();
}
if (start > end) {
return NULLSTR;
}
if (start < 0) {
start = 0;
}
if (end < 0) {
end = 0;
}
return str.substring(start, end);
}
/**
* 格式化文本, {} 表示占位符<br>
* 此方法只是简单将占位符 {} 按照顺序替换为参数<br>
* 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
* 例:<br>
* 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>
* 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
* 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
*
* @param template 文本模板,被替换的部分用 {} 表示
* @param params 参数值
* @return 格式化后的文本
*/
// public static String format(String template, Object... params) {
// if (isEmpty(params) || isEmpty(template)) {
// return template;
// }
// return StrFormatter.format(template, params);
// }
//
// /**
// * 驼峰首字符小写
// */
// public static String uncapitalize(String str) {
// int strLen;
// if (str == null || (strLen = str.length()) == 0) {
// return str;
// }
// return new StrBuilder(strLen).append(Character.toLowerCase(str.charAt(0))).append(str.substring(1)).toString();
// }
/**
* 下划线转驼峰命名
*/
public static String toUnderScoreCase(String s) {
if (s == null) {
return null;
}
StringBuilder sb = new StringBuilder();
boolean upperCase = false;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
boolean nextUpperCase = true;
if (i < (s.length() - 1)) {
nextUpperCase = Character.isUpperCase(s.charAt(i + 1));
}
if ((i > 0) && Character.isUpperCase(c)) {
if (!upperCase || !nextUpperCase) {
sb.append(SEPARATOR);
}
upperCase = true;
} else {
upperCase = false;
}
sb.append(Character.toLowerCase(c));
}
return sb.toString();
}
/**
* 是否包含字符串
*
* @param str 验证字符串
* @param strs 字符串组
* @return 包含返回true
*/
public static boolean inStringIgnoreCase(String str, String... strs) {
if (str != null && strs != null) {
for (String s : strs) {
if (str.equalsIgnoreCase(trim(s))) {
return true;
}
}
}
return false;
}
/**
* 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld
*
* @param name 转换前的下划线大写方式命名的字符串
* @return 转换后的驼峰式命名的字符串
*/
public static String convertToCamelCase(String name) {
StringBuilder result = new StringBuilder();
// 快速检查
if (name == null || name.isEmpty()) {
// 没必要转换
return "";
} else if (!name.contains("_")) {
// �
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于Springboot+Mybatis+Redis+MySql+RabbitMq的校园医疗管理系统.zip (343个子文件)
StringUtils.class 5KB
AcessFilter.class 4KB
TokenFilter.class 3KB
TokenUtils.class 3KB
DoctorController.class 3KB
RegistrationController.class 3KB
UserController.class 3KB
InsuranceHandleController.class 3KB
InjuryHandleController.class 3KB
StudentController.class 3KB
ProblemItemController.class 3KB
LoginController.class 3KB
StudentServiceImpl.class 3KB
DrugController.class 3KB
UserServiceImpl.class 3KB
SwaggerConfig.class 3KB
RegistrationServiceImpl.class 3KB
DoctorServiceImpl.class 3KB
InsuranceHandleServiceimpl.class 3KB
InjuryHandleServiceimpl.class 3KB
ProblemItemServiceimpl.class 3KB
DrugServiceimpl.class 2KB
MenuServiceimpl.class 2KB
Doctor.class 2KB
MqRecev.class 2KB
PageUtil.class 2KB
Registration.class 2KB
MsController.class 2KB
AjaxResult.class 2KB
BaseController.class 2KB
BaseEntity.class 2KB
Student.class 2KB
InjuryHandle.class 2KB
MenuVo.class 2KB
Drug.class 2KB
MqUtil.class 2KB
MenuController.class 2KB
InsuranceHandle.class 1KB
RabbitConnection.class 1KB
Menu.class 1KB
CorsConfig.class 1KB
User.class 1KB
HelloSender.class 1KB
ParentMenu.class 1KB
AjaxDemo.class 1KB
TableDataInfo.class 1KB
Sender.class 1KB
ProblemItem.class 1KB
MedicalApp.class 1KB
SechduleTask.class 1014B
SynDemo.class 893B
RabbitMqServer.class 880B
Thread2.class 826B
ThreadDemo.class 819B
pubSpeak.class 813B
UserMapper.class 794B
LoginServiceimpl.class 791B
Job.class 780B
RegistrationMapper.class 749B
Consumer.class 742B
Num.class 732B
Test.class 721B
MS.class 718B
StudentService.class 717B
DoctorMapper.class 706B
InsuranceHandleMapper.class 701B
StudentMapper.class 688B
SpeakDemoImpl.class 680B
DoctorService.class 673B
InjuryHandleMapper.class 670B
ProblemItemMapper.class 653B
DrugMapper.class 565B
MenuMapper.class 513B
RegistrationService.class 506B
InsuranceHandleService.class 493B
UserService.class 481B
InjuryHandleService.class 474B
ProblemItemService.class 461B
DrugService.class 401B
ParentMenuMapper.class 371B
MessageRecevier.class 322B
MenuService.class 273B
MsMapper.class 240B
SpeakDemo.class 239B
NumMapper.class 236B
LoginService.class 191B
.classpath 1KB
CheckUsername.html 876B
CheckUsername.html 876B
Medical.iml 14KB
Medical-0.0.1-SNAPSHOT.jar 30.77MB
StringUtils.java 9KB
LoginController.java 3KB
TokenFilter.java 3KB
StudentServiceImpl.java 3KB
AcessFilter.java 3KB
StudentController.java 3KB
AjaxResult.java 3KB
DoctorController.java 3KB
InsuranceHandleController.java 2KB
共 343 条
- 1
- 2
- 3
- 4
资源评论
AI拉呱
- 粉丝: 2865
- 资源: 5510
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功