Java中的实用类

目录

1.枚举

1.1 为什么使用枚举

1.2 如何使用枚举

2.包装类

2.1 什么是包装类

2.2 包装类的构造方法

2.3 包装类的常用方法

2.4 拆箱和装箱

3. String类

3.1 String类的基本语法

3.2 常用方法

4.StringBuffer

4.1 为什么要使用StringBuffer

4.2 StringBuffer常用方法

5.Date类

5.1 Date对象

5.2 SimpleDateFormat类


1.枚举

1.1 为什么使用枚举

        枚举就是定义一组固定的值,尽管我们可以使用控制语句控制对类属性值的范围控制,但实际上可以使用更方便更高效的枚举类来定义某种属性的取值,这种方法主要应用在属性值为固定值时。

1.2 如何使用枚举

1.2.1 基础使用方法

enum Sex {
    MALE,FEMALE;//第一行写枚举类型中存放的固定值
                //注意只能用英文,且一般全大写
}

public class Student {
    private Sex sex;//定义这个属性为Sex类型的值

    public Sex getSex() {
        return sex;
    }

    public void setSex(Sex sex) {
        this.sex = sex;
    }

    public static void main(String[] args) {
        Student student = new Student();
        student.setSex(Sex.Male);//使用Sex枚举设置属性值,用.来调用enum的属性值
        System.out.println(student.getSex());//MALE
    }
}

1.2.2 添加映射

        由于enum只能添加英文的固定值,因此我们有时需要对它进行转换,使我们得到中文字符串。

enum Sex {
    Male("男"),Female("女");//使用

    private String name;//定义一个成员变量,表示Sex属性的中文名

    Sex(String name) {
        this.name = name;//构造器,参数为对应的中文字符串
    }

    public String getName() {
        return name;//可以使用getter方法对该中文名进行调用
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class Student {
    private Sex sex;

    public Sex getSex() {
        return sex;
    }

    public void setSex(Sex sex) {
        this.sex = sex;
    }

    public static void main(String[] args) {
        Student student = new Student();
        student.setSex(Sex.Male);
        System.out.println(student.getSex().getName());//男

    }
}

2.包装类

2.1 什么是包装类

2.1.1 定义

        每个基础数据类型在java.lang包下,都有各自的包装类,例如常用的int类型对应的Integer包装类,char类型对应的Character包装类。

2.1.2 作用

        包装类提供了一些实用的方法,例如基本数据类型和包装类的转换;集合中只能存放对象,想要存放基本类型数据时,就需要使用包装类。

2.2 包装类的构造方法

2.2.1 无参构造

Integer a = new Integer();
//a的初始值为null
//实际上所有对象不赋值的话初始值都是null

2.2.2 带基础数据类型的参数

//参数类型为int类型
//直接使用数值
//或者使用int类型的变量
Integer a = new Integer(1);
int num = 123;
Interger b = new Integer(num);

 2.2.3 字符串作为参数

//字符串的内容必须是符合数据类型的规律的,否则会抛出异常
Integer a = new Integer("123");
//Character类不具有这个功能
Character b = new Character("a");//会提示无法填入String类型的值
//Boolean类在识别时,忽略大小写,非true的字符串都默认为false
Boolean c = new Boolean("TrUE");//不报错,且c为true
Boolean d = new Boolean("A");//不报错,且d为false

2.3 包装类的常用方法

2.2.1 xxValue()

        返回一个自身代表的基本数据类型(xx)的值

Integer a = new Integer(12)
int value1 = a.intValue();//返回值类型为方法规定的类型
System.out.println(value1);//12
Integer b = new Integer(600);
byte value2 = b.byteValue();//这类方法可以用于强制转换
System.out.println(value2);//88

2.2.2 toString()

        实际上所有Object都具有这个方法,该方法是将对象转换为字符串类型的方法,在包装类中,实际上就是将包装类的对象转换为字符串。

String string = Integer.toString(111);//这是个静态方法

2.2.3 parseXx()

        将字符串转换为某个基本类型(Xx)。

int a = Integer.parseInt("124");//静态方法

2.2.4 valueOf()

        将基本数据类型或字符串转换为包装类,实际上就是构造器调用的方法,不再赘述。

2.4 拆箱和装箱

        实际上我们在使用过程中发现,包装类和基础数据类型的直接转换是不需要使用方法的,而是可以自动的相互转换,这个自动转换的过程我们就叫拆箱和装箱。

Integer a = 1;//装箱
int b = a;//拆箱

3. String类

3.1 String类的基本语法

String str1 = "Hello";//使用双引号表示String关键字,这种方法会将该值直接放在静态区
String str2 = new String();//创建一个空字符串,使用new的对象都会放在堆中
String str3 = new String("Hello");//str3与str1所指向的对象并非同一个

3.2 常用方法

3.2.1 length()

String str = "abc";
int len = str.length();//返回str字符串中包含字符的数量

3.2.2 equals()

String str1 = "aa";//存放在静态区
String str2 = "a"+"a";//同样存放在静态区,由于和上面一样,因此不会创建新的String对象
String str3 = new String("aa");//创建了新的String对象,存放在堆中

//equals主要是判断两个字符串的值是否相同
//而比较运算符 == 则是判断两个对象是否在同一个地址

System.out.println(str1 == str2);//true
System.out.println(str1.equals(str2));//true
System.out.println(str1 == str3);//false
System.out.println(str1.equals(str3));//true

3.2.3 equlasIgnoreCase()

//在equals基础之上,不区分大小写的比较
String str1 = "abcD";
String str2 = "AbCd";

System.out.println(str1.equalsIgnoreCase(str2));//true

3.2.4 toLowerCase()/toUpperCase()

//toLowerCase()是将字符串中所有大写字母转换为小写字母
System.out.println("ABCdE".toLowerCase());//abcde
//toUpperCase()是将字符串中所有小写字母转换为大写字母
System.out.println("abcDe".toUpperCase());//ABCDE

3.2.5 concat()

//该方法作用就是连接字符串并返回连接后的字符串
String a = "abc";
String b = "123";
String c = a.concat(b);//c为"abc123"

//concat和连接符"+"的区别在于
//concat只能连接字符串,而+可以在有字符串时,连接所有数据类型
//concat的效率比连接符高很多

3.2.6 trim()

//trim()方法用于去除字符串首尾的空格,并返回去除后的新字符串
String str = "   ab c d   ";
String new_str = str.trim();//new_str为"ab c d"

3.2.7 indexOf

//该方法用于查找指定字符或字符串的索引值
String str = "abc go go";
int a = str.indexOf('a');//查询字符第一次出现时的索引值//返回0
int b = str.indexOf("go");//也可以是字符串,会返回第一个字符的索引值//返回4
int c = str.indexOf("ac");//如果不存在会返回-1
int d = str.indexOf('g',5);//可以设置查找的起始索引值//返回7

3.2.8 substring()

//该方法用于截取字符串
String str0 = "HelloWorld";
String str1 = str0.substring(2);//返回从该索引值到结尾的字符串
System.out.println(str1);//lloWorld

String str2 = str0.substring(3,6);//返回从开始索引值到结尾索引值-1位置的字符串
System.out.println(str2);//loW

3.2.9 split()

//该方法用于切割字符串,并返回切割后的数组
String str = "a,b,c";
String[] array1 = str.split(",");//返回值为一个数组
//array1中的内容为{"a","b","c"}

String[] array2 = str.split("",2);//第二个参数表示最大分割块数
//array2中的内容为{"a",",b,c"}

4.StringBuffer

4.1 为什么要使用StringBuffer

        主要是String类一旦创建后无法被修改,StringBuffer提供了方法可以原地修改,而不必创建新的对象,因此在需要频繁修改字符串时,就要使用StringBuffer。

4.2 StringBuffer常用方法

4.2.1 append()

//append()方法在末尾添加内容,可以添加任何类型的数据
StringBuffer str = new StringBuffer();
str.append("a");
str.append(12);
str.append(true);
System.out.println(str);//a12true

4.2.1 insert()

//该方法可以在指定位置插入一个任意数据的类型
StringBuffer str = new StringBuffer("Hello you are good!");
str.insert(6,"狗蛋 ");//第一个参数为索引值,第二个参数为添加的值
System.out.println(str);//Hello 狗蛋 you are good!

5.Date类

5.1 Date对象

Date date = new Date();
System.out.println(date);
//会显示当前时间的西历表达
//例如Tue Jun 13 18:37:12 CST 2023
//按顺序分别为 星期几,月份,日,时间,时区,年份

5.2 SimpleDateFormat类

5.2.1 将Date对象转换为字符串

SimpleDateFormat sdf = 
new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//日期格式
String curTime = sdf.format(date);
System.out.println(curTime);
//2023年06月13日 18时39分52秒

5.2.2 将字符串转换为Date对象

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String time = "1111年1月22日 1时1分1秒 ";
Date date = sdf.parse(time);//转换时需要格式一致
System.out.println(date);
//Sun Jan 22 01:01:01 CST 1111
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值