开发中的零零碎碎的Java基础知识

这篇博客涵盖了Java编程中的一些实用技巧,包括保留一位小数、字符串操作如判断包含、替换和分割,枚举的遍历,日期转换与拼接,以及集合转String。此外,还详细介绍了如何判断日期是今天、昨天还是其他时间,以及获取上个月的最后一天的方法。这些内容对于日常的Java开发工作非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1 计算相关的

1.1保留一位小数

2 String

2.1 判断包含

2.2 替换

2.3 分割

3 Enum

3.1 枚举遍历

4 日期相关

4.1 日期转换与拼接

4.2 获取上个月的最后一天

4.3 判断日期是今天昨天还是其他时间

5 集合

5.1 集合转String


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值