Java学习笔记(八)

目录

一:Arrays

二:基本类型包装类

三:日期类

 四:SimpleDateFormat类


一:Arrays

1.1 冒泡排序

  • 如果有n个数据进行排序,总共需要比较n-1次。
  • 每一次比较完毕,下一次的比较就会少一个数据参与。
public class Main {
    public static String arrayToString(int[] arr){
        StringBuilder sb=new StringBuilder();
        sb.append("[");
        for(int i=0;i<arr.length;i++){
            if(i==arr.length-1){
                sb.append(arr[i]);
            }else{
                sb.append(arr[i]+",");
            }
        }
        sb.append("]");
        return sb.toString();
    }
    public static void main(String[] args) {
        int[] arr={24,69,80,57,13};
        System.out.println("排序前:"+arrayToString(arr));//输出:排序前:[24,69,80,57,13]
        for(int i=0;i<arr.length-1;i++){//冒泡排序
            for(int j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        System.out.println("排序后:"+arrayToString(arr));//输出:排序后:[13,24,57,69,80]
    }

}

1.2 Arrays类的概述和常用方法

Arrays类属于工具类,工具类的设计思想:

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

 public static void main(String[] args) {
        int[] arr={24,69,80,57,13};
        System.out.println("排序前:"+Arrays.toString(arr));//排序前:[24, 69, 80, 57, 13]
        Arrays.sort(arr);
        System.out.println("排序后:"+Arrays.toString(arr));//排序后:[13, 24, 57, 69, 80]
    }

}

二:基本类型包装类

2.1 基本类型包装类概述:

将基本类型封装成对象的好处在于可以在对象在定义更多的功能方法操作该数据。

常用的操作之一:用于基本数据类型与字符串之间的转换。

 2.2 Integer类的概述和使用:

Integer:包装一个对象中的原始类型int的值。

public class Main {
    public static void main(String[] args) {
        Integer i1=Integer.valueOf(100);
        System.out.println(i1);

        Integer i2=Integer.valueOf("123");
        System.out.println(i2);
        
        /*Integer i3=Integer.valueOf("abc");
        System.out.println(i3);*/
        //i3会报错,只能含有数字字符串
    }

}

2.3 int和String的相互转换

基本类型包装类的最常见操作就是:用于基本数据类型与字符串之间的转换。

1. int转化为String

public static String valueOf(int i):返回int参数的字符串表示形式,该方法是String类中的方法。

2. String转换为int

public static int parseint(String s):将字符串解析为int类型,该方法是Integer类中的方法。

public class Main {
    public static void main(String[] args) {
      //int------String
        int number=100;
        //方式1:
        String s1=""+number;
        System.out.println("s1:"+s1);
        //方式2:
        String s2=String.valueOf(number);
        System.out.println("s2:"+s2);

        //String-----int
        String s="123";
        //方式1:
        //String-----Integer-----int
        Integer i1=Integer.parseInt(s);
        int x1=i1.intValue();
        System.out.println("x1:"+x1);
        //方式2:
        //String-----int
        int x2=Integer.parseInt(s);
        System.out.println("x2:"+x2);
    }

}

public class Main {
    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      String s=sc.nextLine();
      String[] str=s.split(" ");//遇“ ”进行切割
        //split()方法,将一个字符串分割为子字符串,然后将结果作为字符串数组返回。---- String[] strs = str.split("[+\\-*/]");//通过+-*/进行字符的分割
      int[] arr=new int[str.length];
      for(int i=0;i<str.length;i++){
          arr[i]=Integer.parseInt(str[i]);
      }
      Arrays.sort(arr);
      StringBuilder sb=new StringBuilder();
     // sb.append("'");
      for(int i=0;i<arr.length;i++){
          if(i==arr.length-1){
              sb.append(arr[i]);
          }else{
              sb.append(arr[i]+" ");
          }
      }
       // sb.append("'");
        System.out.println("sb:"+sb);
    }

}

2.4 自动装箱与拆箱

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

(注意:在使用包装类类型的时候,如果做操作,最好先判断是否为null

我们推荐的是,只要是对象,在使用前就必须进行不为null的判断)

public class Main {
    public static void main(String[] args) {
        //装箱  基本类型----包装类类型
        Integer i=Integer.valueOf(100);

        Integer ii=100;//自动装箱

        //拆箱   包装类类型----基本类型
        ii+=200;
        System.out.println(ii);

        Integer iii=null;//避免访问空指针
        if(iii!=null){
            iii+=300;
        }
    }
}

三:日期类

3.1 Date类的概述和构造方法

Date代表了一个特定的时间,精确到毫秒。

 

public class Main {
    public static void main(String[] args) {
       Date d1=new Date();
        System.out.println(d1);//Fri Feb 25 13:21:58 CST 2022

        long date=1000*60*60;
        Date d2=new Date(date);
        System.out.println(d2);//Thu Jan 01 09:00:00 CST 1970
    }
}

3.2 Date类的常用方法

public class Main {
    public static void main(String[] args) {
        //创建日期对象,调用方法
        Date d1 = new Date();
        System.out.println(d1.getTime());//获得的值是1970年1月1日00:00:00距今的毫秒值
        System.out.println(d1.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365+"年");//52.186931712931255年

        long time=1000*60*60;//设置时间,给的是毫秒值
        d1.setTime(time);
        System.out.println(d1);//Thu Jan 01 09:00:00 CST 1970
    }
}

 四:SimpleDateFormat类

4.1 SimpleDateFormat类的概述:

SimpleDateformat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

4.2 SimpleDateFormat类的构造方法: 

 4.3 SimpleDateFormat格式化和解析日期

1.格式化(从Date到String)

public final String format(Date date):将日期格式化成日期/时间字符串。

2.解析(从String到Date)

public Date parse(String source):从给定字符串的开始解析文本生成日期。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

public class Main {
    public static void main(String[] args) throws ParseException {
        //格式化(从Date到String)
      // SimpleDateFormat sdf=new SimpleDateFormat();//默认模式
      SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//手动设置模式
       Date d1=new Date();
       String s=sdf.format(d1);
        System.out.println(s);//2022/2/25 下午1:50
        //2022年02月25日 13:54:29
        System.out.println("------------------");
        //解析:从String到Date
        String s2="2022年02月25日 13:55:49";
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d2=sdf1.parse(s2);//抛出异常
        System.out.println(d2);//Fri Feb 25 13:55:49 CST 2022
    }
}

(PS:本文章图片截至黑马程序员Java全套教程)

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值