实用类详解

目录

1.枚举

2.包装类及其构造方法

3.Math类

4.Random类

5.String类

6.StringBuffer类

7.操作日期时间

总结


内容仅供学习交流,如有问题请留言或私信!!!!!

有空您就点点赞


1.枚举

        枚举指由一组固定的常量组成的类型。

        使用枚举的好处:类型安全,易于输入,代码清晰。

枚举使用关键字enum来创建,如下图所示:

         我们经常把能够且便于一一列举的类型用枚举来表示。就比如:一周的星期、性别、月份……

eg:

        枚举成员之间用(逗号)隔开,enum Week为枚举的类型,{ }内为枚举类型的取值,简称枚举常量

使用:

//用户一周做什么事(条件判断)
public class WeekDo {
	//根据用户输入星期几,对用户要做的事情做一个提示
	public void doWhat(int day) {
		
		if(day>7 || day<1) {
			System.out.println("参数错误,必须在1-7之间。");
			return;
		}
		switch (day) {
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			System.out.println("工作");
			break;
		case 6:
			System.out.println("休息");
			break;
		case 7:
			System.out.println("休息2");
			break;
		
		}

	}
	//使用枚举:根据用户输入星期几,对用户要做的事情做一个提示
		public void doWhat2(Week day) {
			
			switch (day) {
			case MON:
			case TUE:
			case WED:
			case THU:
			case FRI:
				System.out.println("工作");
				break;
			case SAT:
				System.out.println("休息");
				break;
			case SUN:
				System.out.println("休息2");
				break;
			
			}

		}	
		
			
	public static void main(String[] args) {
		WeekDo week = new WeekDo();
		week.doWhat(5);
		week.doWhat2(Week.SUN);
	}
	
	
	
}

2.包装类及其构造方法

  • 包装类把基本数据类型转换为对象。   
    • 每个基本类型在 java.lang 包中都有一个相应的包装类    
  • 包装类的作用
    • 提供相应的方法
    • 集合无法存放基本数据类型,基本数据类型->包装类,放进去。

        需要特别记忆的是下图的 Integer Character ,其余的均为基本数据类型首字母大写。

 包装类的构造方法:

  • 所有包装类都可将与之对应的基本数据类型作为参数,来构造他们的实例

数据类型转换 :
        //    new 包装类(字符串)            字符串 ==> 包装类(char除外) 
        //    包装类.toString(基本类型)       基本类型 ==》字符串
        //    包装类.parsexxx(字符串)         字符串 ==》基本类型 
        //    new 包装类(基本类型)         基本类型 ==> 包装类 
        //    类名.xxxValue()                        包装类 ==》 基本类型 
        //    包装类.valuOf(基本类型)          基本类型==》包装类 
        //    包装类.valueOf(字符串)           字符串 ==》基本类型(char除外)

        int i = 6;
        // new 包装类(基本类型)
        Integer integer1 = new Integer(i);


        // new 包装类(字符串)
        Integer integer2 = new Integer("123");
        System.out.println(integer2 + 1);


        // 类名xxxvalue() 包装类 ==》 基本类型
        Boolean b = new Boolean("true");
        boolean bool = b.booleanValue();
        System.out.println(b);

        // 包装类.toString(基本类型)
        int a = 25;
        String str = Integer.toString(a);


        // 包装类.parsexxx(字符串)
        int num = Integer.parseInt(str);

        // 包装类.valuOf(基本类型)
        Integer num1 = Integer.valueOf(num);

        // 包装类.valuOf(基本类型)
        Integer num2 = Integer.valueOf("1");
        System.out.println(num2);

注意事项:

  • Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false。
  • 当Number包装类构造方法参数为String 类型时字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译不通过,运行时会抛出NumberFormatException异常

装箱:基本类型转换为包装类的对象

拆箱:包装类对象转换为基本类型的值

包装类的特点

  • 包装类并不是用来取代基本数据类型的
    • 在基本数据类型需要用对象表示时使用
    • JDK1.5以后,允许基本数据类型和包装类型进行混合数学运算

3.Math类

        常用:

        java.lang.Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数)PI(圆周率)。

System.out.println(Math.abs(-8.8));         //绝对值
System.out.println(Math.max(100,9));     //最大值
System.out.println(Math.min(100,9));      //最小值

System.out.println(Math.random());        //随机数(0-1)

4.Random类

生成随机数的其他方法:java.util.Random

Random rand=new Random(); //创建一个Random对象

for(int i=0;i<20;i++){//随机生成20个随机整数,并显示

        int num=rand.nextInt(10);//返回下一个伪随机数,整型的    

        System.out.println(""+(i+1)+"个随机数是:"+num);

}

        用同一个种子值来初始化两个Random 对象,然后用每个对象调用相同的方法,得到的随机数也是相同的。

5.String类

String类:位于java.lang 包中,被fifinal修饰,没有子类,具有丰富的方法。

常用方法:

        String str = "zhangSaN"; 
        str.length();        //获取字符串长度
        str.equals("lisi");    //比较
        str.equalsIgnoreCase("zhangSAN");//忽视大小写进行比较
        str.toLowerCase();    //将字符串转为小写
        str.toUpperCase();    //将字符串转为大写
        str.concat("真帅");    //拼接字符串
        str.indexOf("a");    //查找指定字符串出现的位置(下标),没找到返回-1
        str.lastIndexOf("n");//查找指定字符串最后一次出现的位置
        str.subSequence(3, 4);//截取字符串
        str.trim();            //去除字符串两端的空格
        str.split("\\|");    //分割字符串
        str.charAt(4);        //根据下标获得单个字符
        str.endsWith(".com");//判断是否以指定后缀结束
        str.getBytes();        //字符串转换字节数组
        str.isEmpty();        //判断字符串长度是否为0
        str.replace("zhangSaN", "张三");//根据指定字符替换所有内容(字符串)
        str.replaceAll("\\d", "*");//根据指定字符替换所有内容(正则表达式)
        

split方法详解:分隔符可以是任意字符、符号、数字、字符串等。

特殊情况:

  1. 字符串开头有分隔符:开头产生一个空字符串,其余正常。
  2. 分隔符相互紧挨着:每两个分隔符产生一个空字符串,若有三个分隔符则会有2各空字符,以此类推。
  3. 字符串最尾部有分割符:末尾产生一个空字符串,其余正常。

split(String str, int limit)

  1. 如果 limit > 0,(从左到右)最多分割 n - 1 次,数组的长度将不会大于 n,结尾的空字符串不会丢弃。
  2. 如果 limit < 0,匹配到多少次就分割多少次,而且数组可以是任何长度。结尾的空字符串不会丢弃。
  3. 如果 limit = 0,匹配到多少次就分割多少次,数组可以是任何长度,并且结尾空字符串将被丢弃。
     

6.StringBuffer

        对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率。

声明:

StringBuffer strb = new StringBuffer();

StringBuffer strb = new StringBuffer("aaa");

部分使用:

sb.toString();           //转化为String类型

sb.append("**");      //追加字符串

sb.insert (1, "**");    //插入字符串

eg:

import java.util.Scanner;

//StringBuffer
//	一个数字字符串转换成逗号分隔的数字串,即从右边开始每三个数字用逗号分隔 
public class Test {
	public static void main(String[] args) {
		//StringBuffer
		StringBuffer s = new StringBuffer("Hello");
		System.out.println(s.length());
		String news = s.toString();//StringBuffer - String
		System.out.println(news);
		s.append(" World!");
		System.out.println(s);
		s.insert(2, ",");
		System.out.println(s);
		
		// 分割字符串,将一个数字字符串转换为逗号分割的数字串,从右边开始每三个数字用逗号分隔开
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入一个字符串:");
		StringBuffer number = new StringBuffer(sc.next());
		for (int i = number.length() - 3; i >0 ; i = i-3) {
			number.insert(i, ",");
		}
		System.out.println(number);
	}
	
	
	
	
	
}

区别:

String:在字符串反复拼接时效率低

StringBuffer:线程安全,效率低(相对于StringBuilder)

StringBuilder:线程不安全,效率高(相对于StringBuffer)

7.操作日期时间

  • 获取当前日期(需要进行导包)
    • java.util.Date类:表示日期和时间
      • 提供操作日期和时间各组成部分的方法
    • java.text.SimpleDateFormat;类
      • SimpleDateFormat:格式化日期对象

创建日期:

        //通过Date 、SimpleDateFormat 来操作时间

        //获取当前日期
        Date date = new Date();
        System.out.println(date);
        //定制日期格式化:年-月-日
        //date转字符串
        SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        String dateStr = formater.format(date);

        System.out.println(dateStr);

Calendar类

        抽象类,java.util.Calendar

        用于设置和获取日期/时间数据的特定部分

方法或属性

说明

int get(int field)

返回给定日历字段的值

MONTH

指示月

DAY_OF_MONTH

指示一个月中的某天

DAY_OF_WEEK

指示一个星期中的某天

         //通过 Calendar 来操作日期时间
         Calendar c = Calendar.getInstance();
         System.out.println("今天是"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
         
         //星期几
         int week = c.get(Calendar.DAY_OF_WEEK)-1;
         System.out.println("今天星期:"+week);


总结

        练习:这里写练习及链接等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚人钊呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值