Java基础复习——DAY7 (常用API;异常)

常有API

1.Arrays,冒泡

冒泡排序:有手就行

package arrays;


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

        //排序
        int k ;
        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]){
                    k = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = k;
                }
            }
        }
/*        for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }*/

        System.out.println("排序后:"+ arrayToString(arr));//排序后:[13,24,57,69,80]
    }

    //输出函数
    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]).append(",");
            }
        }
        sb.append("]");
        return sb.toString();
    }
}

2.Arrays类的概述和常用方法

操作数组的各种方法,属于工具类一般工具类
一般工具类的设计思想:

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

在这里插入图片描述

package arrays;


import java.util.Arrays;

public class ArraysDemo {
    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]
    }
}

3.基本类型包装类

概述:将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能和方法操作数据
常用的操作之一:用于基本类型数据与字符串之间的转换
在这里插入图片描述

3.1 Integer类的概述和使用

Integer:包装一个对象中的原始类型int的值
在这里插入图片描述

3.2 int和string的相互转换

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

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

  • String转换为int
    public static int parseInt(String s):将字符串解析为int类型,该方法时Integer类中的方法

package arrays;
//int 和 string的相互转换
public class ArraysDemo {
    public static void main(String[] args) {
        //int-----Stirng
        //方式一
        int number = 100;
        String s1 = ""+number;
        System.out.println(s1);
        //方式二
        //public static String valueof(int i )
        String s2 = String.valueOf(number);
        System.out.println(s2);
        System.out.println();


        //string-----int
        //String-----Integer-----int
        String s ="100";
        //方式一
        //public int intValue();
        Integer i = Integer.valueOf(s);
        int x = i.intValue();
        System.out.println(x);
        //方式二
        int y = Integer.parseInt(s);
        System.out.println(y);
    }
}
案例:字符串中数据排序

在这里插入图片描述

package arrays;

import java.util.Arrays;

//字符串数据排序
public class ArraysDemo {
    public static void main(String[] args) {
        //定义一个字符串
        String s = "91 27 46 38 50";

        //分割,放入strArray字符串数组中
        String[] strArray = s.split(" ");

        //String转换int,得到int数组
        int[] arr = new int[strArray.length];
        for (int i = 0; i < strArray.length; i++) {
            arr[i] = Integer.parseInt(strArray[i]);
        }

        //int数组排序
        Arrays.sort(arr);

        //用StringBuilder拼接,转成字符串
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            if (i == args.length - 1) {
                sb.append(arr[i]);
            } else {
                sb.append(arr[i]).append(" ");
            }
        }
        String s1 = sb.toString();
        
        
        System.out.println(s1);//27 38 46 50 91
    }
}

3.3自动装箱和拆箱

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

package arrays;

/*(自动)拆箱和(自动)装箱*/
public class ArraysDemo {
    public static void main(String[] args) {
        Integer i = Integer.valueOf(100);//手动装箱
        Integer ii = 100;//自动装箱,隐藏了Integer.valueOf(100)
        Integer iii = 200;

        ii = ii.intValue() + 200;//手动拆箱
        iii = iii + 200;//自动拆箱

        Integer iiii = null;
        if (iiii != null) {
            iiii += 100; //如果不判断null,报错
        }
    }
}

推荐:只要是对象,在使用前就必须判断非null

4. 日期类

4.4.1Date类

在这里插入图片描述 在这里插入图片描述
在这里插入图片描述

4.4.2 SimpleDateFormat类

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

  • y 年
  • M 月
  • d 日
  • H 时
  • m 分
  • s 秒

构造方法
在这里插入图片描述

在这里插入图片描述

package arrays;

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

/*SimpleDateFormat*/
public class ArraysDemo {
    public static void main(String[] args) throws ParseException {
        //格式化 Date -- String
        Date d =new Date();
        System.out.println(d);//Tue Mar 08 15:36:20 CST 2022  自动被重写了

        SimpleDateFormat sdf1 = new SimpleDateFormat();
        String s1 =sdf1.format(d);
        System.out.println(s1);//22-3-8 下午3:37

        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String s2 = sdf2.format(d);
        System.out.println(s2);//2022年15月08日 15:41:54

        System.out.println("-------------");

        //解析 String---Date
        String s3 = "1949-10-1 12:00:00";
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//一一对应
        Date dd = sdf3.parse(s3);//抛异常
        System.out.println(dd);

    }
}
案例:日期工具类
package arrays;

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

public class DateUtils {
    private DateUtils(){} ;
    public static String dateToString(Date d , String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        String s = sdf.format(d);
        return s;
    }
    public static Date stringToDate(String s , String format) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        Date d = sdf.parse(s);
        return d;
    }
}

package arrays;

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

public class DateDemo {
    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);//2022-03-08 16:05:41

        String ss = "1949-10-1 12:10:59";
        Date dd = DateUtils.stringToDate(ss,"yyyy-MM-dd HH:mm:ss");
        System.out.println(dd);//Sat Oct 01 12:10:59 CST 1949
    }
}
4.4.3 Calendar类

Calendar为某一时刻和日历字段之间的转换提供了一些方法,并为操作字段提供了一些方法

package arrays;

import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        //获取对象
        Calendar c = Calendar.getInstance();//多态的形式

        //public int get (int field)
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;  //月份从0开始
        int day = c.get(Calendar.DATE);
        System.out.println(year + "年" + month + "月" + day + "日");

    }
}

常用方法
在这里插入图片描述

package arrays;

import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        //获取对象
        Calendar c = Calendar.getInstance();//多态的形式

        //public int get (int field)
        // 三年前的昨天
        c.add(Calendar.YEAR,-3);
        c.add(Calendar.DATE,-1);
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;  //月份从0开始
        int day = c.get(Calendar.DATE);
        System.out.println(year + "年" + month + "月" + day + "日");//2019年3月8日
        //public abstract void add(int field,int amount)
    }
}
package arrays;

import java.util.Calendar;

public class CalendarDemo {
    public static void main(String[] args) {
        //获取对象
        Calendar c = Calendar.getInstance();//多态的形式
        
        //设置时间
        c.set(2200,11,12);
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;  
        int day = c.get(Calendar.DATE);
        System.out.println(year + "年" + month + "月" + day + "日");//
    }
}
案例:二月天
package arrays;

import java.util.Calendar;
import java.util.Scanner;

public class CalendarDemo {
    public static void main(String[] args) {
        //获取对象
        Scanner sc = new Scanner(System.in);
        System.out.println("输入年份:");
        int year = sc.nextInt();

        //设置日历的年月日
        Calendar c = Calendar.getInstance();

        c.set(year,2,1);//3.1
        c.add(Calendar.DATE,-1);//3.1前一天

        int date = c.get(Calendar.DATE);
        System.out.println(year + "年的二月有" + date + "天");
    }
}

异常(感觉没啥用)

1.概述

在这里插入图片描述

2.异常处理方案

  • try…catch…
    在这里插入图片描述
    Throwable
    在这里插入图片描述`package arrays;

public class ExceptionDemo {
public static void main(String[] args) {
System.out.println(“开始”);
method();
System.out.println(“结束”);

}

public static void method() {
    try {
        int[] arr = {1, 2, 3};
        System.out.println(arr[3]);//new ArrayIndexOutOfBoundsException
    } catch (ArrayIndexOutOfBoundsException e) {
        e.printStackTrace();//控制台输出错误信息
    }
}`

.编译异常和运行时异常区别

  • 受检异常和非受检异常
  • 编译异常:必须显示处理,否则报错无法通过编译
  • 运行时异常:无需显示处理,可以和编译时异常一样处理

3. throws异常处理

格式:throws 异常名类; 跟在方法括号后面
在这里插入图片描述

4.自定义异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值