当前位置: 代码迷 >> 综合 >> JAVA基础_常用API_下篇_Arrays&Integer&Date&SimpleDateFormat
  详细解决方案

JAVA基础_常用API_下篇_Arrays&Integer&Date&SimpleDateFormat

热度:69   发布时间:2024-02-11 13:32:38.0

文章目录

  • 1 一个冒泡排序数组
  • 2 常用API _Arrays
    • 2.1 概述
    • 2.2 常用方法
  • 3 基本类型包装类的概述
    • 3.1 概述
    • 3.2 Integer类的构造方法
    • 3.3 int类型和String类型的相互转换
    • 3.4 Integer的练习之把字符串中的数据排序
    • 3.5 JDK5的新特性自动装箱和拆箱
  • 4 Date类和SimpleDateFormat类
    • 4.1Date类的概述和构造方法
      • 4.1.1 概述
      • 4.1.2 构造方法
    • 4.2 Date 类中的成员方法getTime()和setTime()
    • 4.3 SimpleDateFormat类的概述和使用
      • 4.3.1 概述

1 一个冒泡排序数组

图解
在这里插入图片描述

代码演示

public static void main(String[] args) {int[] a = new int[]{1,4,2,9,8,7};System.out.println("遍历排序前的数组");for (int i:a) {System.out.print(i+" ");           //输出 1 4 2 9 8 7}System.out.println();for (int i = 0; i < a.length; i++) {for (int j = 0; j < a.length; j++) {if(a[i] < a[j]){int temp;temp = a[j];a[j] = a[i];a[i] = temp;}}}System.out.println("遍历排序后的数组");for (int i:a) {System.out.print(i+" ");          //输出 1 2 4 7 8 9}}

2 常用API _Arrays

2.1 概述

     Arrays:提供了对数组操作的各种方法
  • Arrays文档没有提供构造函数,原因:Arrays的构造方法被private修饰,无法被外界访问。且此思想为常用的工具类思想(构造方法私有,成员都用static修饰)

2.2 常用方法

public static String toString(int[] a)  //把数组转成字符串
public static void sort(int[] a)  //对数组进行升序排序

代码演示

public static void main(String[] args) {//定义一个数组int[] arr = {24,69,80,57,13};//public static String toString(int[] a):把数组转成字符串System.out.println("排序前:"+Arrays.toString(arr));//public static void sort(int[] a):对数组进行升序排序Arrays.sort(arr);System.out.println("排序后:"+Arrays.toString(arr));}
}

3 基本类型包装类的概述

3.1 概述

目的:为了对基本数据类型进行更多更方便的操作,Java就针对每一种基本数据类型提供了一个对应的引用类型。
基本类型包装类:

包装类 基本
Byte byte
Short short
Integer int
Long long
Character char
Float float
Double double
Boolean boolean

基本数据类型包装类最常见的用法就是用于和字符串之间进行相互转换

3.2 Integer类的构造方法

Integer类在对象中包装了一个基本类型 int 的值
构造方法:
Integer(int value)
Integer(String s) //这个字符串必须由数字字符组成
代码事例

public static void main(String[] args) {int i = 100;Integer ig = new Integer(i);System.out.println(ig);  //100String i2 = "a";String i3 = "5";// Integer ig2 = new Integer(i2); //java.lang.NumberFormatException:Integer ig3 = new Integer(i3);System.out.println(ig3);   //5}

3.3 int类型和String类型的相互转换

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

  • int – String
    String类中:public static String valueOf(int i)

  • String – int
    Integer类中:public static int parseInt(String s)

代码事例

int i = 100;String s1 = String.valueOf(i);System.out.println(s1);String s2 = "100";int i2 = Integer.parseInt(s2);System.out.println(i2);

3.4 Integer的练习之把字符串中的数据排序

需求:
我有如下一个字符串:” 91 27 46 38 50”
请写代码实现最终输出结果是:” 27 38 46 50 91”
提示:这里需要参考String类中的方法
public String[] split(String regex)

public static void main(String[] args) {String s  = " 91 27 46 38 50";System.out.println("输出字符串:");System.out.println(s);System.out.println("将字符串切割成字符数组:");String[] split_ = s.split(" ");System.out.println("切割后字符串数组长度:"+split_.length);String[] split = new String[split_.length-1];for (int i = 0; i < split.length; i++) {split[i] = split_[i+1];}System.out.println("新字符串数组长度:"+split.length);int[] arr = new int[split.length];for (int i = 0; i < split.length; i++) {arr[i] = Integer.parseInt(split[i]);}System.out.println();System.out.println("输出由字符串数组转换成数组后排序前的数组:");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println();Arrays.sort(arr);System.out.println("排序后的数组");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println("将排序后的数组转换成字符串输出:");String ge = " ";for (int i = 0; i < split.length; i++) {ge+=Integer.toString(arr[i])+" ";}System.out.println(ge);}

3.5 JDK5的新特性自动装箱和拆箱

代码演示

public static void main(String[] args) {//创建一个包装类类型的对象//Integer i = new Integer(100);Integer ii = 100; //自动装箱 //public static Integer valueOf(int i)ii += 200; //ii = ii + 200; 自动拆箱,自动装箱//public int intValue()System.out.println(ii);/*Integer ii = Integer.valueOf(100);ii = Integer.valueOf(ii.intValue() + 200);System.out.println(ii);*/Integer iii = null;if(iii != null) {iii += 300; //NullPointerExceptionSystem.out.println(iii);}}

注意:在使用包装类类型的新特性的时候,如果做操作,最好先判断是否为null。
开发中的原则:只要是对象,在使用前就必须进行不为null的判断。

4 Date类和SimpleDateFormat类

4.1Date类的概述和构造方法

4.1.1 概述

Date:Date表示特定的瞬间,精确到毫秒

4.1.2 构造方法

Date()   //根据当前时间创建的日期对象
Date(long date) //根据给定的毫秒值创建对象

Date(long date) :根据给定的毫秒值创建对象,从1970 年 1 月 1 日 00:00:00
代码演示

public static void main(String[] args) {Date d = new Date();System.out.println(d);   //Sat Aug 15 19:26:19 CST 2020System.out.println("----------------");Date date = new Date(1000*60*60);System.out.println(date);   //Thu Jan 01 09:00:00 CST 1970}

4.2 Date 类中的成员方法getTime()和setTime()

成员方法:
public long getTime():获取的是毫秒值。从1970年1月1日 00:00:00开始的。
public void setTime(long time):设置时间,给的是毫秒值。
从Date得到一个毫秒值:getTime()
从一个毫秒值得到一个Date对象:setTime(long time)

代码演示

Date d = new Date();//public long getTime()System.out.println(d.getTime());// 毫秒值 1597491070297//public void setTime(long time)d.setTime(1000*60*60);System.out.println(d.getTime()); //毫秒值 3600000

4.3 SimpleDateFormat类的概述和使用

4.3.1 概述

SimpleDateFormat:是一个以与语言环境有关的方式来格式化和解析日期的具体类

它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)
格式化(日期 -> 文本): Date – String public final String format(Date date)
解析(文本 -> 日期): String – Date public Date parse(String source)

代码演示

 public static void main(String[] args) {Date d = new Date();System.out.println(d);  //Sat Aug 15 19:42:49 CST 2020SimpleDateFormat sdf = new SimpleDateFormat();System.out.println(sdf.format(d));   //20-8-15 下午7:42SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");System.out.println(sdf2.format(d));    //2020年08月15日 19:42//日期转文本String s = sdf2.format(d);         System.out.println(s);    //2020年08月15日 20:39//文本转日期String s2 = "1998年7月20日 23:30";Date parse = sdf2.parse(s2);          System.out.println(parse);           //Mon Jul 20 23:30:00 CST 1998 }

把一个字符串解析为日期的时候,请注意模式字符串和给定的日期字符串的格式要匹配

模版参考表
在这里插入图片描述

  相关解决方案