java异常,常用类,List集合

1.java异常

import java.util.Objects;

public class Demo {
    public static void main(String[] args) {
        Demo demo=new Demo();
        //demo.nullText(null);

//        B b=new B();
//        demo.classText(b);

//        demo.ArithmeticText(4,0);

//        int[] arr=new int[]{1,2};
//        demo.ArrayText(arr,3);
    }

    public void nullText(A a){
        a.text();
    }
    public void classText(Object o){
        A a=(A)o;
    }
    public void ArithmeticText(int a,int b){
        System.out.println(a/b);
    }
    public void ArrayText(int[] arr,int index){
        System.out.println(arr[index]);
    }
}
  1. demo.nullText(null);因为传入数据为空,会出现NullPointerException
  2. demo.classText(b);因为把B类型的b强制转换为A类型的a,会出现ClassCastException
  3. demo.ArithmeticText(4,0);因为除数为0,会出现ArithmeticException
  4. int[] arr=new int[]{1,2};demo.ArrayText(arr,3);因为数组arr只有下标0,1,却去访问下标3会出现 ArrayIndexOutOfBoundsException

2.常用类String

package xiti22; 


public class StringText { 
    public static void main(String[] args) { 
        String str = "xxx.yyy.zzz.mp3"; 
        System.out.println(str); 
        StringText stringText = new StringText(); 
        str = stringText.reName(str, "123456"); 
        System.out.println(str);

    }

     /**
     *重命名
     * @param str 原文件名
     * @param newStr 新文件名
     * @return 新文件名(完整)
     */
    public String reName(String str, String newStr) {
        String[] strs = str.split("\\."); // 使用"."作为分隔符将str拆分成字符串数组
        String suffix = "." + strs[strs.length - 1]; // 获取原始文件名的后缀
        return newStr + suffix; // 将新的文件名和后缀拼接起来并返回
    }
}
split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
语法:str.split(str="",num=string.count(str))[n]
参数说明:
str:表示为分隔符,默认为空格,但是不能为空(’’)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
[n]:表示选取第n个分片
注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略

3. 常用类Date

package xiti23.xiti1;

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

public class DateText {
    public static void main(String[] args) throws ParseException { // 主方法,可能会抛出ParseException异常
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 创建SimpleDateFormat对象,指定日期格式为"yyyy-MM-dd"
        Date date = simpleDateFormat.parse("2022-11-11"); // 将字符串"2022-11-11"解析为Date对象
        Calendar objCalendar = new GregorianCalendar();
        objCalendar.setTime(date); // 将日期设置为objCalendar的时间
        System.out.println("星期: " + (objCalendar.get(Calendar.DAY_OF_WEEK) - 1)); // 打印输出星期几的值
    }
}

java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

parse:将字符串转换成时间

Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

4.常用类Random

package xiti23.xiti2;

import java.util.ArrayList;
import java.util.Scanner;

public class Text {
    public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<Student>(); // 创建一个ArrayList对象,用于存储学生信息
        boolean flag; // 定义一个boolean类型的变量flag,用于判断是否继续录入学生信息
        do {
            Student student = getStudent(); // 调用getStudent方法获取一个学生对象
            students.add(student); // 将学生对象添加到ArrayList中
            flag = isFlag(); // 调用isFlag方法判断是否继续录入学生信息
        } while (flag);

        for (int i = 0; i < students.size(); i++) { // 遍历ArrayList中的学生信息并输出
            System.out.println("学号:" + students.get(i).getID() + ",姓名:" + students.get(i).getName() + ",年龄:" + students.get(i).getAge());
        }
    }

     /**
     * 判断是否继续录入学生信息
     * @return 是否继续
     */
    private static boolean isFlag() {
        Scanner input = new Scanner(System.in); 
        System.out.println("是否继续?y(继续)/n(不继续)");
        switch (input.next()) { // 使用switch语句判断用户输入的选项
            case "n":
                return false; // 如果用户输入"n",返回false,表示不继续录入
            case "y":
                return true; // 如果用户输入"y",返回true,表示继续录入
            default:
                System.out.println("没有这个选项,请重新输入");
                return isFlag(); // 如果用户输入其他选项,提示重新输入,并递归调用isFlag方法
        }
    }

     /**
     * 获取学生信息
     * @return 学生信息
     */
    private static Student getStudent() { 
        Scanner input = new Scanner(System.in); 
        Student student = new Student(); // 创建一个Student对象
        System.out.println("请输入姓名");
        student.setName(input.next()); // 获取用户输入的姓名,并设置给学生对象的姓名属性
        System.out.println("请输入年龄");
        student.setAge(input.nextInt()); // 获取用户输入的年龄,并设置给学生对象的年龄属性
        student.setID(); // 调用学生对象的setID方法,随机生成学号
        return student;
    }
}
Random random=new Random();(int)(random.nextFloat()*500);random.nextFloat()可以生成0-1的浮点随机数,*500可以生成0-500的浮点随机数,int可以使浮点数向上取整可以生成0-499的浮点整数

5.List集合 

package xiti4;

import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        List<Worker> list = new ArrayList<>(); // 创建一个ArrayList对象,用于存储工人信息
        Worker worker1 = new Worker("zhang3", 18, 3000);
        Worker worker2 = new Worker("li4", 25, 3500);
        Worker worker3 = new Worker("wang5", 22, 3200);
        list.add(worker1); // 将Worker对象添加到ArrayList中
        list.add(worker2);
        list.add(worker3);

        Worker worker4 = new Worker("zhao6", 24, 3300);
        list.add(1, worker4); // 在指定位置插入Worker对象

        list.remove(3); // 在指定位置删除Worker对象

        for (int i = 0; i < list.size(); i++) { // 利用for 循环遍历,打印List 中所有工人的信息
            System.out.println("姓名:" + list.get(i).getName() + ",年龄:" + list.get(i).getAge() + ",工资:" + list.get(i).getSalary());
        }
        System.out.println();

        for (Worker worker : list) { // 利用迭代遍历,对List 中所有的工人调用work 方法。
            worker.work();
        }
    }
}

.什么是集合

1、 集合是Java API所提供的一系列类,可以用于动态存放多个对象。--`集合只能存对象`

2、 集合与数组的不同在于,集合是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。(集合中不能放基本数据类型,但可以放基本数据类型的包装类)

3、 集合类可以自动扩容。

4、 集合类全部支持泛型,是一种数据安全的用法。

Collection的常用方法

1、 int size(); 返回此collection中的元素数。

2、 boolean isEmpty(); 判断此collection中是否包含元素。

3、 boolean contains(Object obj); 判断此collection是否包含指定的元素。

4、 boolean contains(Collection c); 判断此collection是否包含指定collection中的所有元素。

5、 boolean add(Object element); 向此collection中添加元素。

6、 boolean addAll(Collection c);将指定collection中的所有元素添加到此collection中

7、 boolean remove(Object element); 从此collection中移除指定的元素。

8、 boolean removeAll(Collection c); 移除此collection中那些也包含在指定collection中的所有元素。

9、 void clear(); 移除些collection中所有的元素。

10、boolean retainAll(Collectionc); 仅保留此collection中那些也包含在指定collection的元素。

11、Iterator iterator(); 返回在此collection的元素上进行迭代的迭代器。

12、Object[]toArray();把此collection转成数组。

  • 47
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值