第二章 实用类介绍

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

相关文章

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

四种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 的版本信息在日常使用和系统维护中起着至关重要的作