实用类详解

news2024/11/18 12:45:14

第二章  实用类介绍


目录

第二章  实用类介绍

1.枚举

2.包装类及其构造方法

3.Math类

4.Random类

5.String类

总结


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

有空您就点点赞


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,匹配到多少次就分割多少次,数组可以是任何长度,并且结尾空字符串将被丢弃。
     

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/700034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python-注册nacos服务

一、首页 Nacos&#xff08;Naming and Configuration Service&#xff09;是一个用于实现服务注册和发现的开源项目。Nacos注册服务的主要作用是帮助微服务架构中的各个服务实例进行注册和发现&#xff0c;以便于服务之间的通信和协作&#xff0c;另外&#xff0c;也可以在nac…

基于高性能的STM32G031K4T6、STM32G031K6T6、STM32G031K8T6(ARM微控制器)64MHz 闪存 32-LQFP

STM32G0 32位微控制器 (MCU) 适合用于消费、工业和家电领域的应用&#xff0c;并可随时用于物联网 (IoT) 解决方案。这些微控制器具有很高的集成度&#xff0c;基于高性能ARM Cortex-M0 32位RISC内核&#xff0c;工作频率高达64MHz。该器件包含内存保护单元 (MPU)、高速嵌入式内…

大数据赋能交通业务管理——远眺智慧交通集成管控系统

随着交通管理需求的不断提升&#xff0c;原有系统管理模式的缺点逐渐显露&#xff0c;各业务系统的相互独立、各自为战&#xff0c;成为交通管理人员全局把控交通资源、实现交通综合管控的壁垒。 智慧交通集成管控平台通过统一标准&#xff0c;集成交警各类业务系统、整合相关数…

libevent(6)windows上使用iocp网络模型

windows操作系统上不能使用epoll模型&#xff0c;只能使用iocp网络模型。这里我把怎么在windows上使用iocp的代码直接贴上&#xff1a; #include <iostream> #include <signal.h> #include <event2/event.h> #include <event2/listener.h> #include &l…

【Linux从入门到放弃】冯诺依曼体系机构、操作系统及管理的本质

&#x1f9d1;‍&#x1f4bb;作者&#xff1a; 情话0.0 &#x1f4dd;专栏&#xff1a;《Linux从入门到放弃》 &#x1f466;个人简介&#xff1a;一名双非编程菜鸟&#xff0c;在这里分享自己的编程学习笔记&#xff0c;欢迎大家的指正与点赞&#xff0c;谢谢&#xff01; 文…

技术小知识:WAN和LAN区别 ①

1、WAN是外网接接入入口&#xff0c;一般指&#xff1a;外网&#xff0c;广域网&#xff0c;公网。 2、LAN是局域网输出接口&#xff0c;一般指&#xff1a;内网&#xff0c;家庭公司局域网。 局域网是小规模&#xff0c;近距离的一种内部范围网络布局。 外网要跨越的通讯商中…

【GESP】2023年06月图形化一级 -- 去旅行

文章目录 去旅行1. 准备工作2. 功能实现3. 设计思路与实现&#xff08;1&#xff09;角色、舞台背景设置a. 角色设置b. 舞台背景设置 &#xff08;2&#xff09;脚本编写a. 角色&#xff1a;Avery Walking 4. 评分标准 去旅行 1. 准备工作 &#xff08;1&#xff09;删除默认小…

不要错过这所211,专业课简单!保护一志愿,人称电力黄埔军校!

一、学校及专业介绍 华北电力大学&#xff08;North China Electric Power University&#xff09;&#xff0c;简称华电&#xff08;NCEPU&#xff09;&#xff0c;是中华人民共和国教育部直属、由国家电网有限公司等12家特大型电力集团和中国电力企业联合会组成的理事会与教育…

Java容器介绍及其操作方法

一、List ArrayList&#xff0c;LinkedList 特有的函数 <class T> get(int index) 获取下标为index的元素 <class T> set(int index, <class T> element) 改变某个元素 void add(int index, <class T> element) 在下标为index处插入元素…

API信息

API 接口渗透测试

Neo4j的简单使用

1、创建节点 CREATE (:Person {name: Alice, age: 25, city: London}) CREATE (:Person {name: Bob, age: 30, city: New York}) CREATE (:Person {name: Charlie, age: 35, city: Paris})CREATE (:Interest {name: Music}) CREATE (:Interest {name: Sports}) CREATE (:Inter…

Redis实战案例9-封装Redis工具类

1. 封装Redis工具类 方法一和三主要解决缓存穿透的问题&#xff1b; 方法二和四主要解决缓存击穿的问题&#xff1b; 2. 方法一和三 缓存穿透的封装&#xff1b; private final StringRedisTemplate stringRedisTemplate; public CacheClient(StringRedisTemplate stringRedisT…

炫技亮点 Spring Websocket idle check原理

文章目录 原理配置附件Java_websocket空闲检测原理 Spring Websocket 是基于 WebSocket 协议的实现&#xff0c;它提供了一种在客户端和服务器之间实时双向通信的方式。其中&#xff0c;idle check&#xff08;空闲检查&#xff09;是一种机制&#xff0c;用于检测 WebSocket 连…

新项目,不妨采用这种架构分层,很优雅!

大家好&#xff0c;我是飘渺。今天继续更新DDD&微服务的系列文章。 在专栏开篇提到过DDD&#xff08;Domain-Driven Design&#xff0c;领域驱动设计&#xff09;学习起来较为复杂&#xff0c;一方面因为其自身涉及的概念颇多&#xff0c;另一方面&#xff0c;我们往往缺乏…

CF449D Jzzhu and Numbers 题解

题意 给定 A 1 . . . . A n A_1....A_n A1​....An​&#xff0c;选任意个数使得它们异或和为 0 0 0&#xff0c;求方案数。 思路 很朴素的想法是枚举每个数&#xff0c;然后进行 0-1 背包方案数统计&#xff0c;时间复杂度 O ( n n ) O(n \times n) O(nn)。 而根据前面几…

linux——解压和压缩

目录 1.压缩格式 2. tar命令 3.tar命令压缩 4. tar解压 5. zip命令压缩文件 6. unzip 命令解压 7. 总结 1.压缩格式 2. tar命令 3.tar命令压缩 4. tar解压 5. zip命令压缩文件 6. unzip 命令解压 7. 总结

DragGAN windows 部署逼坑指南

可参看B站视频&#xff1a;【DragGAN开源】DragGAN win11 部署逼坑指南_哔哩哔哩_bilibili 报错信息如下&#xff1a; Setting up PyTorch plugin "bias_act_plugin"... Failed! ninja is required to load c extensions 环境配置&#xff1a; cuda:12.1visual …

C++vector动态容器类

1、std::vector::push_back&#xff08;尾差&#xff09; 1.1、std::vector::operator[] 意思为&#xff1b; 访问元素 返回对vector容器中位置n的元素的引用。 void test_vector2() {vector<int> v1;v1.push_back(1);v1.push_back(2);v1.push_back(3);v1.push_back(4);/…

这个元宇宙平台真是拼了!新上线十套模板,帮您打造虚拟展览

导语&#xff1a; 随着数字技术的不断发展&#xff0c;线上虚拟展览正成为越来越多企业和组织的营销利器。在众多的虚拟展厅平台中&#xff0c;蛙色3DVR展厅凭借其独特的优势和特点&#xff0c;成为行业中备受关注的创新解决方案。 第一部分&#xff1a;展厅的优势和特点 1.便…

多元分类预测 | Matlab蛇群算法(SO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,SO-HKELM分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab蛇群算法(SO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,SO-HKELM分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,…