java工具类的学习(Arrays,日期类,基本类型包装类以及int和String 的相互转换)

本文详细介绍了Java中常用的工具类,包括Arrays类的toString和sort方法,Integer类的valueOf方法,以及字符串与整型之间的转换。此外,还深入探讨了Date类、SimpleDateFormat类和Calendar类的使用方法,并提供了丰富的示例。

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

Arrays 的工具类

Arrays 作为工具类有两个常用的方法
1、Arrays.toString(int[]) 返回指定数值内容的字符串表示形式
2、Arrays.sort(int[]) 按照数值顺序排列指定的数组、

public class Demo {
    public static void main(String[] args) {

        int[] arr= {24,69,80,57,13};

        System.out.println("排序前"+ Arrays.toString(arr));

        Arrays.sort(arr);

        System.out.println("排序后"+ Arrays.toString(arr));
    }
}

输出:

排序前[24, 69, 80, 57, 13]
排序后[13, 24, 57, 69, 80]

工具类的设计思想:

  • 构造方法用 private 修饰
  • 成员方法用 public static 修饰

Interger包装类的使用

Integer 类的构造方法

        Integer i =Integer.valueOf(100);
        System.out.println(i);

        Integer i2 =Integer.valueOf("100");
        System.out.println(i2);

// 这个会报错,必须是数字类型的字符串
        Integer i3 =Integer.valueOf("abc");
        System.out.println(i3);

int 和String类型的相互转换
int->String

// int->String
        int num=100;
        // 方式一
        String s1 = ""+num;
        System.out.println(s1);
        // 方式二 利用String的方法
        String s2 = String.valueOf(100);
        System.out.println(s2);

String->int

        // String->int
        //方式一  String->Integer->int
        String s3 = "100";
        Integer i3= Integer.valueOf(s3);
        int i4 = i3.intValue();
        System.out.println(i4);
        // 方式二
        int i5 = Integer.parseInt("100");
        System.out.println(i5);

一个案例:

// 案例
        // "91 27 46 38 50" 进行排序输出
        String s = "91 27 46 38 50";
        String[] ss=s.split(" ");
        int[] arr=new int[ss.length];
        for (int i = 0; i < ss.length; i++) {
//            System.out.println(ss[i]);
            arr[i]=Integer.parseInt(ss[i]);
        }
        // 排序
        Arrays.sort(arr);
        // 定义
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            if(i==arr.length-1){
                sb.append(arr[i]);
            }else {
                sb.append(arr[i]).append(" ");
            }
        }
        String result = sb.toString();
        System.out.println(result);

装箱:把基本数据类型转换为对应的包装类类型
拆箱:把包装类类型转换为基本的数据类型

Date 日期类

java.util 包下
Date 类代表了特定的时间,以毫秒的精度

两种构造方法

        Date d1 = new Date();
        System.out.println(d1);

        long date = 1000*60*60;
        Date d2= new Date(date);
        System.out.println(d2);
Sun May 09 14:51:45 CST 2021
Thu Jan 01 09:00:00 CST 1970

常用方法:
getTIME()
setTime()

        // 获取毫秒值
        Date d1= new Date();
        System.out.println( d1.getTime());

        long time=1000*60*60;
        long time1=System.currentTimeMillis();
        System.out.println(time1);
        // 给定毫秒值,给定时间
        d1.setTime(time);
        System.out.println(d1);

SimpleDateFormat 类

用于区域设置敏感的格式格式化和解析日期。它允许格式化和解析以及规范化
y->Year 年
M-> month in year 月
d->Day in month 日
H->Hour in day(0-23) 时
m->Mintue in hour 分
s->Second in minute 秒
重点了解日期格式化和解析

构造方法

方法:
1、格式化(从Date到String) format
2、解析(从String 到 Date)parse

        //格式化
        Date d = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat();
        String s = sdf.format(d);
        System.out.println(s);  // 21-5-9 下午3:07   这种无参的模式不是我们想要的

        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String s1 = sdf1.format(d);
        System.out.println(s1);   // 2021年05月09日 15:08:55

        // 解析  从String 到 Date
        String ss = "2021-05-09 11:11:11";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date dd = sdf2.parse(ss);
        System.out.println(dd); //Sun May 09 11:11:11 CST 2021

日期工具类

方法1: 把日期转换为制定格式的字符串
方法2:把字符串转换为指定格式的日期

public class DateUtils {

    private DateUtils(){

    }

    public static String dateToString(Date date, String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        String s = sdf.format(date);
        return  s ;
    }

    public static Date stringToDate(String s, String format) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        Date date = sdf.parse(s);
        return date;
    }

    public static void main(String[] args) throws ParseException {
        Date d = new Date();
        String s = DateUtils.dateToString(d,"yyyy年MM月dd日 HH:mm:ss");
        System.out.println(s);

        String s2 = DateUtils.dateToString(d,"yyyy年MM月dd日");
        System.out.println(s2);
        System.out.println("--------");
        String s3 = "2021-07-09 12:12:12";
        Date d2= DateUtils.stringToDate(s3,"yyyy-MM-dd HH:mm:ss");
        System.out.println(d2);
        // 2021年05月09日 15:21:50
        //2021年05月09日
        //--------
        //Fri Jul 09 12:12:12 CST 2021
    }
}

Calendar 日历类 是抽象类

    public static void main(String[] args) {
        // 获取日历对象
        java.util.Calendar c = java.util.Calendar.getInstance();// 多态的形式
        System.out.println(c);

        // 获取日历字段的值
        int year = c.get(java.util.Calendar.YEAR);
        int month = c.get(java.util.Calendar.MONTH)+1;// 这里的月份是从0 开始的
        int day = c.get(java.util.Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+month+"月"+day+"日");
        //2021年5月9日
    }

常用的方法

        // add 方法  public abstract void add(int field,int amount) 根据日历的规则,将指定的时间量添加或减去给定的日历字段
        c.add(java.util.Calendar.YEAR,-3);  // 求三年前的今天

        int year = c.get(java.util.Calendar.YEAR);
        int month = c.get(java.util.Calendar.MONTH)+1;// 这里的月份是从0 开始的
        int day = c.get(java.util.Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+month+"月"+day+"日");
        // 2018年5月9日

        // public final void set(int year,int month,int date)  设置当前日历的年月日
        c.set(2022,10,22);
        int year = c.get(java.util.Calendar.YEAR);
        int month = c.get(java.util.Calendar.MONTH)+1;// 这里的月份是从0 开始的
        int day = c.get(java.util.Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+month+"月"+day+"日");
        // 2022年11月22日

案例:获取任意一年的二月有多少天
思路:
获取日历对象
设置日历对象的年为输入的年份,月份为2,因为从0开始,date设置为1。
然后利用add方法对date字段进行减1的操作。
最后获取data字段的值,即为该年2月份的天数。

        Scanner s = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = s.nextInt();

        // 设置日历对象的年月日
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.set(year,2,1);
        c.add(java.util.Calendar.DATE,-1);
        int date = c.get(java.util.Calendar.DATE);
        System.out.println(year+"年2月一共有"+date+"天");
        // 请输入年份:
        // 2008年2月一共有29天
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖大仙~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值