第二章 实用类介绍

2024-09-05 04:12
文章标签 介绍 实用 第二章

本文主要是介绍第二章 实用类介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 第二章 实用类介绍
    • 1、枚举(enum)
    • 2、包装类
      • 1.包装类的作用
      • 2.包装类的构造方法
      • 3.包装类的常用方法
    • 3、装箱和拆箱
    • 4、Math类
    • 5、Random类
    • 6、String类
    • 7、StringBuffer类
    • 8、操作日期时间

第二章 实用类介绍

1、枚举(enum)

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

//定义一个性别枚举
public enum Genders{Male,Female
}
//sex:枚举类型的变量
public class Student{public  Genders  sex;public static void main(String[] args) {Student stu = new Student();stu.sex = Genders.Male; // 将枚举类型的Male赋值给stu对象的 sex属性System.out.println(stu.sex);}
}

Java API

常用Java API :

  • java.lang

    Enum、包装类、Math、String、StringBuffer、System…

  • java.util

  • java.io

  • java.sql

2、包装类

包装类把基本类型数据转换为对象

每个基本类型在java.lang包中都有一个相应的包装类

在基本数据类型需要用对象表示时使用

1.包装类的作用

  • 提供了一系列实用的方法
  • 集合不允许存放基本数据类型数据,存放数字时,要用包装类型
    在这里插入图片描述

2.包装类的构造方法

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

public Type(type value):

Integer i = new Integer(1);
  • 除Character类外,其他包装类可将一个字符串作为参数构造它们的实例

public Type(String value);

Integer i = new Integer("123");

注意事项:

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

3.包装类的常用方法

  • XXXValue():包装类转换成基本类型

    Number:

    byteValue()、intValue()、longValue()、shortValue()、doubleValue()、floatValue()、charValue()、booleanValue()

    Integer integerId = new Integer(25);
    int intId = integerId.intValue();
    

    Character:

    Boolean

  • toString():以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)

    String sex = Character.toString('男');
    String id = Integer.toString(25);String sex='男'+"";
    String id=25+"";
    
  • parseXXX():把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)

    int num=Integer.parseInt("36");public static  type parseType(String type):boolean bool=Boolean.parseBoolean("false");
    
  • valueOf()

    所有包装类都有如下方法(基本类型->包装类)

    public static Type valueOf(type value):Integer intValue = Integer.valueOf(21);
    

    除Character类外,其他包装类都有如下方法(字符串->包装类)

    public static Type valueOf(String s):Integer intValue = Integer.valueOf("21");
    

3、装箱和拆箱

本质:基本类型和包装类的自动转换

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

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

Integer intObject = 5;
int intValue = intObject;

4、Math类

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

Math.abs(-3.5); //返回3.5
Math.max(2.5, 90.5);//返回90.5
//Math.random()获取0-1之间的随机数
int random = (int) (Math.random() * 10); //生成一个0-9之间的随机数

5、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 对象,然后用每个对象调用相同的方法,得到的随机数也是相同的//20~35之间的随机数
Random random = new Random();
int i = random.nextInt((35-20)+1)+20;
System.out.println(i);

6、String类

使用String对象存储字符串:

String s = "Hello World";
String s = new String();
String s = new String("Hello World");

String类位于java.lang包中,具有丰富的方法:

计算字符串的长度、比较字符串、连接字符串、提取字符串

  • length()方法

    String类提供了length()方法,确定字符串的长度

    System.out.print("请输入用户名:");
    String name = scanner.next();
    System.out.println(name.length());
    System.out.print("请输入密码:");
    String pwd = scanner.next();
    if(pwd.length()< 6) {System.out.println("密码长度不能小于6位!");
    }
    
  • equals()方法

     if (name.equals("TOM")&&pwd.equals("1234567")){System.out.println("登陆成功!");}else {System.out.println("用户名或密码不匹配,登陆失败!");}
    equals():检查组成字符串内容的字符是否完全一致
    ==:判断两个字符串在内存中的地址,即判断是否是同一个字符串对象
    

    字符串比较的其他方法:

    使用equalsIgnoreCase() 忽略大小写

    使用toLowerCase()小写

    使用toUpperCase()大写

  • 字符串连接

     //使用“+”String name1 = "张";String name2 = "三";String name = name1+name2;System.out.println(name);//使用String类的concat()方法String name3 = name1.concat(name2);System.out.println(name3);
    
  • 字符串常用提取方法

    方法名说明
    public int indexOf(int ch)搜索第一个出现的字符ch(或字符串value),如果没有找到,返回-1
    public int indexOf(String value)搜索第一个出现的字符ch(或字符串value),如果没有找到,返回-1
    public int lastIndexOf(int ch)搜索最后一个出现的字符ch(或字符串value),如果没有找到,返回-1
    public int lastIndexOf(String value)搜索最后一个出现的字符ch(或字符串value),如果没有找到,返回-1
    public String substring(int index)提取从位置索引开始的字符串部分
    public String substring(int beginindex, int endindex)提取beginindex和endindex之间的字符串部分
    public String trim()返回一个前后不含任何空格的调用字符串的副本
    //字符串常用提取方法
    String con = " abcdefgabsd ";
    System.out.println("****indexOf(int ch)******");
    //字符串
    int index = con.indexOf("cde");
    System.out.println(index);
    //字符
    index = con.indexOf('s');
    System.out.println(index);
    System.out.println("****lastIndexOf(int ch)******");
    //字符
    index = con.lastIndexOf('b');
    System.out.println(index);
    //字符串
    index = con.lastIndexOf("ab");
    System.out.println(index);
    System.out.println("****substring(int index)******");
    String str = con.substring(7);
    System.out.println(str);
    System.out.println("****substring(int beginindex, int endindex)左闭右开******");
    str = con.substring(4,9);
    System.out.println(str);
    System.out.println("****trim()******");
    str = con.trim();
    System.out.println(str);
    

    运行结果:

    String con = " abcdefgabsd ";****indexOf(int ch)******
    3
    10
    ****lastIndexOf(int ch)******
    9
    8
    ****substring(int index)******
    gabsd 
    ****substring(int beginindex, int endindex)左闭右开******
    defga
    ****trim()******
    abcdefgabsd
    
  • 字符串拆分

    String words = "长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山 ";
    //定义接收数组
    String[] printWord ;   
    System.out.println("***原歌词格式***\n" + words);
    System.out.println("***拆分后歌词格式***");
    //按照空格进行拆分
    printWord = words.split(" ");   
    for (int i = 0; i < printWord.length; i++) {System.out.println(printWord[i]);//打印输出
    }
    

    运行结果:

    ***原歌词格式***
    长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山 
    ***拆分后歌词格式***
    长亭外
    古道边
    芳草碧连天
    晚风扶
    柳笛声残
    夕阳山外山
    
  • 查找特定字符出现的次数

    //方法一:使用indexOf和subString方法,循环判断并截取
    int count = 0;
    while(str.indexOf(ch)>=0) {str=str.substring(str.indexOf(ch)+ch.length());count++;
    }
    System.out.println("指定字符串在原字符串中出现:"+count+"次");//方法二:使用replace方法将字符串替换为空,然后求长度
    int counts = (str.length()-str.replace(ch, "").length())/ch.length();
    System.out.println("\""+str+"\""+"中包含"+counts+"个"+"\""+ch+"\"");
    
  • 字符串的替换

    //replace(字符串,字符串)
    String str = "1我爱中国!";
    str = str.replace("中国","学习");
    System.out.println(str);
    //replaceAll(正则表达式,字符串)
    str = str.replaceAll("\\d","\\$");
    System.out.println(str);
    
  • 判断字符串是否以指定字符串结尾

    String txt = "1.txt";
    boolean bool = txt.endsWith("txt");
    System.out.println(bool);
    

7、StringBuffer类

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

  • StringBuffer声明

    StringBuffer strb = new StringBuffer();
    StringBuffer strb = new StringBuffer("aaa");
    
  • StringBuffer的使用

    sb.toString();        //转化为String类型
    sb.append("**");      //追加字符串
    sb.insert (1, "**");  //插入字符串
    

注意:

String是不可变对象,经常改变内容的字符串最好不要使用String

StringBuffer是可变的字符串,字符串经常改变的情况可使用StringBuffer,更高效

JDK5.0后提供了StringBuilder,等价StringBuffer

8、操作日期时间

  • 获取当前日期

    java.util.Date类:表示日期和时间,提供操作日期和时间各组成部分的方法

    java.text.SimpleDateFormat

    //创建日期对象
    Date date = new Date(); 
    //定制日期格式
    SimpleDateFormat formater = new SimpleDateFormat("yyyy- MM-dd HH:mm:ss");
    String now = formater.format(date);
    System.out.println(now);
    
  • Calendar类

    抽象类,java.util.Calendar,用于设置和获取日期/时间数据的特定部分

    protected Calendar() :由于修饰符是protected,所以无法直接创建该对象。

    //通过该方法生成Calendar对象
    Calendar cr = Calendar.getInstance();
    
    方法或属性说明
    int get(int field)返回给定日历字段的值(年月日)
    MONTH指示月
    DAY_OF_MONTH指示一个月中的某天
    DAY_OF_WEEK指示一个星期中的某天
    //get(int field) 返回给定日历字段的值(年月日)
    Calendar cr = Calendar.getInstance();
    int year = cr.get(Calendar.YEAR);
    int month = cr.get(Calendar.MONTH);
    int day = cr.get(Calendar.DAY_OF_MONTH);
    int week = cr.get(Calendar.DAY_OF_WEEK);
    //month是从0开始的,而月份是从1开始的
    System.out.println(year+"年"+(month+1)+"月"+day+"日星期"+week);
    //设置指定日期
    //将周一(FirstDay)设为每周的第一天(monday)
    cr.setFirstDayOfWeek(Calendar.MONDAY);
    //将年份设为2015年
    cr.set(Calendar.YEAR,2015);
    //将月份设为4月(java中0-11代表12个月)
    cr.set(Calendar.MONTH,3);
    //将日数设为第6日
    cr.set(Calendar.DATE,6);
    //使用Calendar.WEEK_OF_YEAR来求出属于某年的第几周
    week = cr.get(Calendar.WEEK_OF_YEAR);
    System.out.println("2015年4月6日是一年中的第"+week+"周");
    

这篇关于第二章 实用类介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137918

相关文章

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现