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("_")) {
// �
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java是一种高性能、跨平台的面向对象编程语言。它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run Anywhere): Java的代码可以在不同的平台上运行,只需编写一次代码,就可以在任何支持Java的设备上执行。这得益于Java虚拟机(JVM),它充当了代码和底层硬件之间的中介。 面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存管理(垃圾回收): Java具有自动内存管理机制,通过垃圾回收器自动回收不再使用的对象,使得开发者不需要手动管理内存,减轻了程序员的负担,同时也减少了内存泄漏的风险。
资源推荐
资源详情
资源评论
收起资源包目录
基于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
资源评论
JJJ69
- 粉丝: 6241
- 资源: 5777
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功