02Java常用类

1. String类

1. 构造方法

  • public String(); 初始化新创建的String对象,以使其表示空字符序列
  • public String(char[] value); 通过当前参数中的字符数组来构造新的String
  • public String(byte[] bytes); 通过使用平台的默认字符集解码当前参数中的字节数组来构造新的 String

2. 常用方法

判断功能的方法
  • public boolean equals(Object anObject); 将此字符串内容与指定对象进行比较
  • public boolean equalsIgnoreCase(String anotherString) :将此字符串与指定对象进行比较,忽略大小写
获取功能的方法
  • public int length () :返回此字符串的长度。
  • public String concat (String str) :将指定的字符串连接到该字符串的末尾。
  • public char charAt (int index) :返回指定索引处的 char值。
  • public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
  • public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符 串结尾。
  • public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到 endIndex截取字符串。含beginIndex,不含endIndex。
转换功能的方法
  • public char[] toCharArray () :将此字符串转换为新的字符数组。
  • public byte[] getBytes () :使用平台的默认字符集将该String编码转换为新的字节数组。
  • public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使 用replacement字符串替换
分割功能的方法
  • public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组

2. Object类

Object类是所有类的父类,定义了一些公共的方法其中最重要的就是toString方法和equals方法

1. toString方法

  • public String toString();返回该对象的字符串表示
    默认情况:下toString方法返回的是对象的类型+@+内存地址值。
    覆写情况:可以通过覆写,以字符串表示其显示内容。

2. equals方法

  • public boolean equals(Object obj); 比较2个对象是否相等
    默认情况:比较地址是否相等,等同于‘==‘
    覆写情况:对对象内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法
public class Person {
    private String name;
    private int age;
    
     覆写toString方法
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    覆写equals方法
    @Override
    public boolean equals(Object o) {
        // 如果对象地址一样,则认为相同
        if (this == o)
            return true;
        // 如果参数为空,或者类型信息不一样,则认为不同
        if (o == null || getClass() != o.getClass())
            return false;
        // 转换为当前类型
        Person person = (Person) o;
        // 要求基本类型相等,并且将引用类型交给java.util.Objects类的equals静态方法取用结果
        return age == person.age && Objects.equals(name, person.name);
    }
}

3. Objects类

Objects是工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题

public static boolean equals(Object a, Object b);比较两个对象是否相等(等同于‘==’号)

如下,并不会抛出空指针异常

 boolean st = Objects.equals(null, "String");
        System.out.println(st); / 结果false

3. 常用Java类

1. Scanner类

Scanner类是一个可以解析基本类型和字符串的简单文本扫描器

        创建一个可以从键盘输入的对象
        Scanner read = new Scanner(System.in);
        通过返回值为String,可以猜测为读取字符串类型的方法
        String str = read.next();
        打印方法
        System.out.println(str);

2. Random类

Random类是用来生成伪随机数

public int nextInt(int n); 返回一个伪随机数,范围在0(包括)和指定值n(不包括)之间的int值
例如
 int i = new Random().nextInt(100);
        System.out.println(i);

3. ArrayList类

ArrayList集合,是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动增长,从0开始索引

构造方法
public ArrayList(); 
例如
ArrayList<Integer> ints = new ArrayList<>();   使用基本数据类型要封装
ArrayList<String> strings = new ArrayList<>();
常用方法
  • public boolean add(E e); 将指定的元素添加到此集合的尾部
  • public E remove(int index); 移除此集合中指定位置上的元素,返回被删除的元素
  • public E get(int index); 返回此集合中指定位置上的元素,返回获取的元素
  • public int size(); 返回此集合中的元素数,遍历集合时,可以控制索引范围,防止越界
 ArrayList<String> str = new ArrayList<>();
        / 添加元素
        str.add("xx");
        str.add("xy");
        str.add("yy");
        /移除元素
        str.remove(1);
        System.out.println(str); /结果为[xx, yy]
        System.out.println(str.size()); /结果为2

4. Math类

.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单

  • public static double abs(double a) :返回 double 值的绝对值
  • public static double ceil(double a) :返回大于等于参数的最小的整数 例如3.4者返回4, 向上取整数
  • public static double floor(double a) :返回小于等于参数最大的整数 例如3.4者返回3,向下取整数
  • public static long round(double a) :返回最接近参数的 long(相当于四舍五入方法)
    还有其他的许多,自行查询API

5. Date类

Date类是描述时间和日期的类

构造方法
public Date();按照当前时间创建一个date对象
public Date(long date);从初始时间位置偏移指定的秒数,创建一个date对象

例如

System.out.println(new Date());
System.out.println(new Date(10000));

在这里插入图片描述

常用方法

public long getTime();把日期对象转换成对应的时间毫秒值

6. DateFormat类

DateFormat类是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换

构造方法

DateFormat为抽象类,不能直接使用,所以需要常用的子类SimpleDateFormat来实现

public SimpleDateFormat(String pattern); 使用给定的模板模式,创建一个模板模式的SimpleDateFormat类

***************使用多态创建对象******************************
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
| 标识字母(区分大小写) | 含义   |
| ----------- | ---- |
| y           ||
| M           ||
| d           ||
| H           ||
| m           ||
| s           ||

常用方法
  • public String format(Date date);将Date对象格式化为字符串。
  • public Date parse(String source);将字符串解析为Date对象。
        利用多态创建一个DateFormat对象,并设置格式
        DateFormat utils = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        创建当前时间对象,通过指定格式转换为字符串
        String format = utils.format(new Date());
        System.out.println(format);
        System.out.println("*******************************");
        
        按指定格式,创建一个字符串对象
        String time="1996-10-16 17:23:20";
        将字符串按照指定的格式转换为Date对象
        Date parse = utils.parse(time);
        System.out.println(parse);
案例

计算出一个人已经出生了多少天

        /获取当前时间
        Date d1 = new Date();
        /获取输入时间
        System.out.println("请输入出生时间(xxxx年-xx月-xx日)");
        String next = new Scanner(System.in).next();
        Date d2 = new SimpleDateFormat("yyyy-MM-dd").parse(next);
        /当前时间与输入时间的时间差的毫秒值
        long time=d1.getTime()-d2.getTime();
        /判断是否为负值
        if ((d1.getTime()-d2.getTime())<0){
            System.out.println("输入有误");
        }else {
            int day= (int) ((time/1000)/60/60/24);
            System.out.println("出生到现在一共"+day+"天");
        }

7. Calendar类

Calendar是日历类并且是一个抽象类,该类将所有可能用到的时间信息封装为静态成员变量,方便获取

构造方法

没有构造方法,只能通过静态方法获取Calendar对象

public static Calendar getInstance():使用默认时区和语言环境获得一个日历

常用方法
  • public int get(int field):得到当前日历的年月日等,通过输入的“字段值”来确定得到什么
  • public void set(int field, int value):去设置当前日历的年月日
  • public abstract void add(int field, int amount):根据日历的规则,为当前日历字段添加或减去指定的时间量。
  • public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

Calendar类中提供很多成员常量,代表给定的日历字段:

| 字段值          | 含义                   |
| ------------ | -------------------- |
| YEAR         ||
| MONTH        | 月(从0开始,可以+1使用)       |
| DAY_OF_MONTH | 月中的天(几号)             |
| HOUR         | 时(12小时制)             |
| HOUR_OF_DAY  | 时(24小时制)             |
| MINUTE       ||
| SECOND       ||
| DAY_OF_WEEK  | 周中的天(周几,周日为1,可以-1使用) |
***************************(get方法)*******************************
        /创建Calendar对象,我们把cal看成一个日历,可以使用一些方法去设置日历,例如调整年月日等,得到年月日等。。。。
        Calendar cal = Calendar.getInstance();
         /得到当前日历的年(通过Calendar.YEAR字段) 
        int year = cal.get(Calendar.YEAR);
         /得到当前日历的月(通过Calendar.YEAR字段) 
        int month = cal.get(Calendar.MONTH) + 1;
         /得到当前日历的日(通过Calendar.YEAR字段) 
        int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
        System.out.print(year + "年" + month + "月" + dayOfMonth + "日");
*****************************(set方法)****************************************************
        Calendar cal = Calendar.getInstance();
        /去设置当前日历(例如这里是cal对象)的年月日等,通过输入的“字段值”来确定年月日等(例如这里的Calendar.YEAR)
        cal.set(Calendar.YEAR, 1998);
        int i = cal.get(Calendar.YEAR);
        System.out.println(i); //这里的显示日历的年为1998年       
*****************************(add方法)****************************************************
        Calendar cal = Calendar.getInstance();
        System.out.println( cal.get(Calendar.YEAR)+ "年" + cal.get(Calendar.MONTH) + "月" +           cal.get(Calendar.DAY_OF_MONTH) + "日"); 
         /使用add方法,类似set方法,只不过是按照日历的规则加减而已
        cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
        cal.add(Calendar.YEAR, -3); // 减3年
        System.out.println( cal.get(Calendar.YEAR)+ "年" + cal.get(Calendar.MONTH) + "月" + cal.get(Calendar.DAY_OF_MONTH) + "日"); 
*****************************(getTime方法)************************************************
        Calendar cal = Calendar.getInstance();
        Date date = cal.getTime();
        System.out.println(date); 

8. System类

System`类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,常用的方法有

public static long currentTimeMillis():返回以毫秒为单位的当前时间,可以使用时间差获取程序运行的时间
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)`:将数组中指定的数据拷贝到另一个数组中。
数组的拷贝动作是系统级的,性能很高。System.arraycopy方法具有5个参数,含义分别为:

| 参数序号 | 参数名称    | 参数类型   | 参数含义       |
| ---- | ------- | ------ | ---------- |
| 1    | src     | Object | 源数组        |
| 2    | srcPos  | int    | 源数组索引起始位置  |
| 3    | dest    | Object | 目标数组       |
| 4    | destPos | int    | 目标数组索引起始位置 |
| 5    | length  | int    | 复制元素个数     |
************************************************
        获取当前时间毫秒值
        long l = System.currentTimeMillis();
        System.out.println(l); 
************************************************
        定义2个数组
        int[] src = new int[]{1,2,3,4,5};
        int[] dest = new int[]{6,7,8,9,10};
        进行替换
        System.arraycopy( src, 0, dest, 0, 3);
        for (int i = 0; i < src.length; i++) {
            System.out.print(src[i]+" ");
        }
        System.out.println();
        for (int i = 0; i < dest.length; i++) {
            System.out.print(dest[i]+" ");
        }

9. StringBuilder类

StringBuilder类是对字符串进行拼接的类,由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象

        String s = "Hello";
        s += "World";
        System.out.println(s);

上面代码总共产生了三个字符串,即"Hello""World"和`"HelloWorld"由此可知,如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。为了解决这一问题,可以使用StringBuilder类

StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作
在这里插入图片描述

构造方法
public StringBuilder()`:构造一个空的StringBuilder容器。
public StringBuilder(String str)`:构造一个StringBuilder容器,并将字符串添加进去。
*****************************************************************************
        StringBuilder sb1 = new StringBuilder();
        System.out.println(sb1); // (空白)
        // 使用带参构造
        StringBuilder sb2 = new StringBuilder("itcast");
        System.out.println(sb2); // itcast
常用方法
public StringBuilder append(...)`:添加任意类型数据的字符串形式,并返回当前对象自身。
public String toString()`:将当前StringBuilder对象转换为String对象。
*****************************************************************************
        //创建对象
		StringBuilder builder = new StringBuilder();
		//public StringBuilder append(任意类型)
		StringBuilder builder2 = builder.append("hello");
		//对比一下
		System.out.println("builder:"+builder);
		System.out.println("builder2:"+builder2);
		System.out.println(builder == builder2); //true
	    // 可以添加 任何类型
		builder.append("hello");
		builder.append("world");
		builder.append(true);
		builder.append(100);
		// 在我们开发中,会遇到调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法。
        // 这种时候,我们就可以把代码现在一起,如append方法一样,代码如下
		//链式编程
		builder.append("hello").append("world").append(true).append(100);
		System.out.println("builder:"+builder);
*****************************************************************************
注意:在StringBuilder已经覆盖重写了Object当中的toString方法

通过toString方法,StringBuilder对象将会转换为不可变的String对象
        // 链式创建
        StringBuilder sb = new StringBuilder("Hello").append("World").append("Java");
        // 调用方法
        String str = sb.toString();
        System.out.println(str); // HelloWorldJava
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值