第二章 实用类介绍

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

相关文章

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每