java day12 常用类(Object类、包装类、String类)

1、Object类

1.1 toString()方法

public String toString(){…}

  • 返回该对象的字符串表示(表现形式)。
  • 可以根据程序需求覆盖该方法,如:展示对象各个属性值。

2.2.4 equals()方法

public boolean equals(Object obj){…}

  • 默认实现为(this == obj),比较两个对象地址是否相同。
  • 可进行覆盖,比较两个对象的内容是否相同。

equals重写步骤:

  • 比较两个引用是否指向同一个对象。
  • 判断obj是否为null。
  • 判断两个引用指向的实际对象类型是否一致。
  • 强制类型转换。
  • 依次比较各个属性值是否相同。

代码示例:
Demo01.java

package Day12_pack.entity;

/**
 * @author wzy
 * @version 1.0
 * @date 0001 2020-12-01 11:27
 */
public class Demo01 {
    public static void main(String[] args) {
        Person person1 = new Person(2,"wzy",'男');
        Person person2 = new Person(21,"wzy",'女');

        System.out.println(person1.equals(person2));

        System.out.println(person1.toString());
        System.out.println(person2.toString());
    }
}

Person.java

package Day12_pack.entity;

/**
 * @author wzy
 * @version 1.0
 * @date 0001 2020-12-01 11:14
 */
public class Person {
    private int id;
    private String name;
    private char sex;

    public Person(int id, String name, char sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }

    @Override
    public boolean equals(Object object) {
        if (this == object){
            return true;
        }
        if (object instanceof Person){
            Person person = (Person) object;
            if (this.id == person.id && this.name.equals(person.name)&& this.sex==person.sex){
                return true;
            }else {
                return false;
            }
        }else {
            return false;
        }
    }
    @Override
    public String toString() {
        return "Person{" +
                "id111=" + id +
                ", name='" + name + '\'' +
                ", sex=" + sex +
                '}';
    }
}

2、包装类

2.1 概述

  • 基本数据类型所对应的引用数据类型。
  • Object可统一所有数据,包装类的默认值是null。

2.2 种类

基本类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

2.3 装箱、拆箱

  • 八种包装类提供不同类型间的转换方式。
  • Number父类中提供的6个共性方法。
    • parseXXX()静态方法(除了Character)。
    • valueOf()静态方法。
  • 注意:需保证类型兼容,否则抛出NumberFormatException异常。
  • JDK 5.0之后,自动装箱、拆箱。基本数据类型和包装类自动转换
package Day12_pack;

/**
 * @author wzy
 * @version 1.0
 * @date 0001 2020-12-01 09:37
 */
public class Demo01 {
    public static void main(String[] args) {
        //----------手动装箱----------
        int num=10;
        Integer integer = new Integer(num);
        System.out.println(integer);

        //----------手动装箱----------
        int num1 = integer.intValue();
        System.out.println("num1:"+num1);

        //-----------jDK1.5以后自动装拆箱-----------
        int num2=14;
        Integer integer1 = num2;
        int num3 = integer1;
        System.out.println("num3:"+num3);

    }
}

3、String类

3.1 概述

  • Java程序中的所有字符串文本(例如“abc”)都是此类的实例。
  • 字符串字面值是常量,创建之后不可改变。
  • 常用创建方式:
    • String str1 = “Hello”;
    • String str2 = new String(“World”);

3.2 常用方法

代码示例(具体方法和解释见代码):

package Day12_pack.sring;

import java.util.Arrays;

/**
 * @author wzy
 * @version 1.0
 * @date 0001 2020-12-01 14:44
 */
public class Demo05 {

    public static void main(String[] args) {
        String str = "abcdegfc";
        char ch = str.charAt(2);  //返回指定索引处的字符
        System.out.println(ch);
        print();

//        str = str.concat("123");  //字符串拼接
//        System.out.println(str);
//        print();

        str = str+"123";  //字符串拼接也可以这样子
        System.out.println(str);
        print();

        boolean flag = str.contains("123");  //判断字符串是否包含子字符串
        System.out.println(flag);
        print();

        //把字符串转换成char类型数组
        char[] chars = str.toCharArray();
        System.out.println(Arrays.toString(chars));
        print();

        //判断字符串是否已子字符串开始
        flag = str.startsWith("a");
        System.out.println(flag);
        print();

        //判断字符串是否已子字符串结尾
        flag = str.endsWith("123");
        System.out.println(flag);
        print();

        //判断字符串是否已子字符串结尾
        flag = str.endsWith("13");
        System.out.println(flag);
        print();


        //indexOf()  返回指定字符在此字符串中第一次出现处的索引。
        System.out.println(str);
        int i = str.indexOf('2');
        System.out.println("2的下标:"+i);
        print();

        //isEmpty()  当且仅当 length() 为 0 时返回 true。
        String str1 = null;
        String str2 = "1";
        flag = str2.isEmpty();
        System.out.println("str2是否为空:"+flag);
        print();

        //lastIndexOf()  返回指定字符在此字符串中最后一次出现处的索引。
        String str11="12221221";
        int i1 = str11.lastIndexOf("1");
        System.out.println("1最后一次出现的位置"+i1);
        print();



        //length()  返回此字符串的长度。
        int len = str.length();
        System.out.println("str的长度:"+len);
        print();


        //replace()  返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
        System.out.println("old:"+str);
        str = str.replace("1","wzy");
        System.out.println("new:"+str);
        print();



        //replaceAll()   使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
        String phone = "12345678909wqwqwqwq19876789876nfoiqjfiq13086795579";
        System.out.println("old-str:"+phone);
        phone = phone.replaceAll("[1][0-9]{10}","|");
        System.out.println("new-str:"+phone);
        print();


        //split()  根据给定正则表达式的匹配拆分此字符串。
        phone = "小学,初中,高中,大专,本科,研究生,博士";
        System.out.println("old-str:"+phone);
        String[] strs = phone.split(",");
        for(i=0;i<strs.length;i++){
            System.out.println(strs[i]);
        }
//        System.out.println("new-str:"+Arrays.toString(strs));
        print();



        //substring()  返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
        System.out.println(str);
        str = str.substring(2,5);
        System.out.println(str);
        print();


        //toLowerCase()  使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
        str = "CHINA IS A BIG COUNTRY";
        System.out.println(str);
        str = str.toLowerCase();
        System.out.println(str);
        print();



        //toUpperCase()  使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
        str = "china is a big country";
        System.out.println(str);
        str = str.toUpperCase();
        System.out.println(str);
        print();


        //trim()  返回字符串的副本,忽略前导空白和尾部空白。  \t产生的空格无法去除
        str ="  i am a good boy   ";
        System.out.println(str);
        str = str.trim();
        System.out.println(str);
        print();


    }
    static void print(){
        String str = "  i am a good boy  ,my phone is 13086795579";
        System.out.println("----------------");
    }
}

4、可变字符

  • 概念:可在内存中创建可变的缓冲空间,存储频繁改变的字符串。

4.1 种类

Java中提供了两个可变字符串类:

  • StringBuilder:可变长字符串,JDK5.0提供,运行效率快、线程不安全。
  • StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全。
  • 这两个类中方法和属性完全一致

常用方法及解释见代码:

public class Demo01 {
    public static void main(String[] args) {
       // StringBuffer sb = new StringBuffer("abc");
        StringBuilder sb = new StringBuilder("abc");
        //末尾追加
        sb.append("123");
        System.out.println(sb);
        //中间插入  --  偏移2个字符,插入"qqq"
        sb.insert(2,"qqq");
        System.out.println(sb);
        //头部插入
        sb.insert(0,"ppp");
        System.out.println(sb);
        //反转
        sb.reverse();
        System.out.println(sb);
        //删除单个
        sb.deleteCharAt(3);
        System.out.println(sb);
        //删除多个      --  包含开始的索引,不包含结束的索引
        sb.delete(1,3);
        System.out.println(sb);
        //转换成字符串
        System.out.println(sb.toString());
    }
}

5、其他常用类

5.1 BigDecimal

  • 概念:
  • 位置:java.math包中。
  • 作用:精确计算浮点数。
  • 创建方式:BigDecimal bd=new BigDecimal(“1.0”)。
  • 常用方法:
方法名描述
BigDecimal add(BigDecimal bd)
BigDecimal subtract(BigDecimal bd)
BigDecimal multiply(BigDecimal bd)
BigDecimal divide(BigDecimal bd)

参考代码:

package Day12_pack.tools;

import java.math.BigDecimal;

/**
 * @author wzy
 * @version 1.0
 * @date 0001 2020-12-01 17:04
 */
public class Tools3 {
    public static void main(String[] args) {
        double num1=0.09;
        double num2=0.01;
        System.out.println(num1+num2);


    }

    private static double add(double num1, double num2) {
        BigDecimal bd1 = new BigDecimal(num1+"");  //将num1和""拼接起来,num1就会改变成String类型
        BigDecimal bd2 = new BigDecimal(num2+"");

        BigDecimal bd3 = bd1.add(bd2);                 //调用BigDecimal的add方法,对bd1和bd2进行和运算

        String str = bd3.toString();                   //将bd3转换成String类型

        double num3 = Double.parseDouble(str);         //将String类型的数值转变为double类型
        return num3;
    }
}

5.2 Date、SimpleDateFormat类

  • Date:时间类
  • SimpleDateFormat:时间模板类
  • Date类是经常会使用到的一个用来处理日期、时间的一个类。
  • Date类是在java.util包下的Date类。

参考代码:

package Day12_pack.tools;

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

/**
 * @author wzy
 * @version 1.0
 * @date 0001 2020-12-01 17:23
 */
public class Tools4 {
    public static void main(String[] args) {
        //获取当前时间
        Date date1 = new Date();
        System.out.println(date1);
        System.out.println("----------------------");
        //将时间格式化为2020-12-01 17:25:36
        //new SimpleDateFormat类的对象,参数传入我们需要的格式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(" yyyy-MM-dd HH:mm:ss");
        String time = simpleDateFormat.format(date1);
        System.out.println(time);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值