目录
1 计算相关的
1.1保留一位小数
需求:要求统计的数据精确到1位小数
//1 保留1位小数,不四舍五入
Integer sum = 200;
double result = (double) sum / 60;
String s = String.valueOf(result);
String substring = s.substring(0, 3);
Double aDouble = Double.valueOf(substring);
System.out.println("result = " + aDouble);
//结果:result = 3.3
2 String
2.1 判断包含
String fileName = "IMG_0125.JPG";
boolean b1 = fileName.contains("jpg");//false
boolean b2 = fileName.contains("JPG");//true
boolean b3 = fileName.toLowerCase().contains("jpg");//true
boolean b4 = fileName.toLowerCase().contains("JPG");//false
2.2 替换
String url = "http://localhost:8001/api";
String newUrl =url.toString().replace(url, "需要替换为字符串---");
System.out.println("newUrl = " + newUrl);
//结果:newUrl = 需要替换为字符串---
2.3 分割
逗号分割、数组转String集合、String集合转Long集合
String fileIds = "1,2,3";
String[] fileIdsArr = fileIds.split(",");//转为String数组
System.out.println("fileIdsArr 有元素 = " + fileIdsArr[0] + fileIdsArr[1] + fileIdsArr[2]);
List<String> fileIdsStringList = Arrays.asList(fileIdsArr);//转为String集合
System.out.println("stringList = " + fileIdsStringList);
List<Long> fieldIdList = fileIdsStringList.stream().map(Long::valueOf).collect(Collectors.toList());//String集合转Long集合
System.out.println("fieldIdLongList = " + fieldIdList);
/** 结果
fileIdsArr 有元素 = 123
stringList = [1, 2, 3]
fieldIdLongList = [1, 2, 3]
*/
3 Enum
3.1 枚举遍历
for (FileTypeEnum value : FileTypeEnum.values()) {
//value是枚举类中的一行属性
}
4 日期相关
4.1 日期转换与拼接
//1前端只能精确的年月日 但是后期要根据时间对今日数据排序 就需要我拼接时分秒
String currentDate1 = "2022-03-10";
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String currentDate2 = sdf.format(new Date());
//结果:String类型的 2022-03-10 12:17:45
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = simpleDateFormat.parse(currentDate1 + " "+ currentDate2);
//结果:Date类型的 2022-03-10 12:17:45
System.out.println("parse = " + parse);
4.2 获取上个月的最后一天
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd");
//获取上一个月的最后一天
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 0);
Date lastDayOfMonth = calendar.getTime();
System.out.println("lastDayOfMonth = " + lastDayOfMonth);//lastDayOfMonth = Mon Feb 28 08:23:09 CST 2022
String format2 = simpleDateFormat.format(lastDayOfMonth);
System.out.println("format1 = " + format2);//format1 = 28
4.3 判断日期是今天昨天还是其他时间
这个是返回的模型数据中的需求,返回的时间有三种形式:昨天、今天或者其他时间
这个是自己封装的,可能有更好的方法去判断;
这个思路是
1 根据时间戳拿到今日的时间;分割出“日” 分割出“月”
2 判断
情况1 : 同一个月份
DB的记录的时间的日与今天的日相同,本记录的时间返回“今天”
DB的记录的时间的日+1等于今天的日,本记录的时间返回“昨天”
其他返回DB中记录的时间
情况2 : 不同的月份
今日是1号,并且记录的日是上个月的最后一天,返回“昨天”
/**
* 判断当前时间是昨天、今天、还是其他时间
* @param currentTimeMillis
* @return
*/
public static String getCurrentDayTime(Long currentTimeMillis, Date date) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String paramDate = dateFormat.format(date);
String[] paramDateSplit = paramDate.split("-");
Integer paramDateMonth = Integer.valueOf(paramDateSplit[1]);
Integer paramDateDay = Integer.valueOf(paramDateSplit[2]);
Date systemDate = new Date(currentTimeMillis);
String format = dateFormat.format(systemDate);
String[] systemDateSplit = format.split("-");
Integer currentMonth = Integer.valueOf(systemDateSplit[1]);
Integer currentDay = Integer.valueOf(systemDateSplit[2]);
if (currentMonth == paramDateMonth) {
if (currentDay == paramDateDay) {
return "今天";
} else if (currentDay == paramDateDay + 1){
return "昨天";
} else {
return paramDate;
}
} else {
//上一个月的最后一天的日
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 0);
Date lastDayOfPreviousMonth = calendar.getTime();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd");
String lastDay = simpleDateFormat.format(lastDayOfPreviousMonth);
if (currentDay == 1 && paramDateDay == Integer.valueOf(lastDay)) {
return "昨天";
}
return paramDate;
}
}
5 集合
5.1 集合转String
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
String str = String.join(",", list);
System.out.println("str = " + str);//str = a,b,c