【第五章】Java API-常用类库(上)

embedded/2024/10/22 15:40:24/

目录

1.字符串 String

1.1 不可变性(Immutability)

 1.2 字符串常用方法

1.3 字符串常用方法举例

1.4 字符串 String——编程练习

2.基本类型与包装类型

2.1 包装类型 ( Wrapper Class)

2.2 基本类型和包装类型的转换:

2.3 包装类的作用

2.4 包装类——编程练习


1.字符串 String

String 类是一个非常核心的类,用于表示和操作字符序列。
由于其不可变性和广泛的应用,了解String类的特性和常用方法对于任何Java程序员来说都是必要的。
下面,我会概述String类的一些关键特性和常用操作。

1.1 不可变性(Immutability)

不可变性:一旦String对象被创建,它的值就不能被改变。如果需要对字符串进行修改,实际上是创建了一个新的String对象。这种设计有助于缓存字符串和重用字符串常量,也有利于多线程环境下的安全性。
创建字符串
1.直接赋值:使用双引号创建字符串,
             例如:String s = "Hello";
2.通过构造器:使用new关键字创建一个新的字符串对象,例如:String s = new String("Hello");

 1.2 字符串常用方法

String 类提供了大量方法来进行字符串的操作,以下是一些最常用的方法:
length():返回字符串的长度。
charAt(int index):返回指定索引处的字符。
substring(int beginIndex, int endIndex):返回一个新字符串,它是此字符串的一个子字符串。
equals(Object another):比较字符串的内容是否相等。
equalsIgnoreCase(String another):忽略大小写比较字符串的内容是否相等。
contains(CharSequence s):判断字符串是否包含指定的字符序列。
indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。
toLowerCase() 和 toUpperCase():将字符串转换为全部小写或全部大写。
trim():返回字符串的副本,忽略前导空白和尾部空白。
replace(CharSequence oldChar, CharSequence newChar):返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的。

1.3 字符串常用方法举例

1. 字符串拼接
使用加号可以直接拼接字符串。
示例:
    String s = "阿发" + "你好";

2. 字符串长度
    String s = "阿发nihao";
    int n = s.length();

注意:
中文字符和英文字符都只占1个字符

3. 空字符串:长度为0的字符串
    String s = "";
    int n = s.length();

注意:
空字符串和null是两回事
空字符串是一个正常的字符串对象。null不指向任何对象。

4. 子串
    String s = "阿发nihao";
    String sub = s.substring(1, 4); // 1,2,3, 不含4

注意:
substring(beginIndex, endIndex) 不含endIndex

5. 判断内容是否相同
    String s1 = new String("nihao");
    String s2 = new String("nihao");    
    if(s1.equals(s2))
    {
        System.out.println("相同");
    }
注:
- 不能写成 if ( s1 == s2 ) {}    

6. 比较大小:按字典序比较
例如: 一个班有30个学生,按字母顺序排序。。
    String s1 = "liming";
    String s2 = "lilei";    
    if( s1.compareTo( s2 ) < 0)
        System.out.println(s1 + "位于前面");
    else 
        System.out.println(s2 + "位于前面");
注:忽略大小写的比较,用compareToIgnoreCase()

7. 格式化
String s = String.format("姓名:%s, 年龄: %d , 身高:%.2f"
            , “你的名字", 20, 1.75);

注:
String.format()是一个静态方法
格式化时:%s 对应字符串 
           %d 对应整数 
    %.2f  表示显示2位小数    

8. 查找 indexOf
如果有这个子串,则返回位置索引;否则返回-1
    String s = "China is a great country";
    int pos = s.indexOf("great");
    if(pos <0)
    {
        System.out.println("没找到");
    }

9. 前缀后缀
startsWith() : 判断前缀
endsWith():  判断后缀
示例:
    String filename = "test.mp4";
    if( filename.endsWith("mp4") )
    {
        System.out.println("支持此视频格式!");
    }

1.4 字符串 String——编程练习


给定一个由多个单词组成的字符串,单词之间由一个或多个空格分隔。你的任务是编写一个Java程序来满足以下要求:
移除字符串两端的空格。
将字符串中连续的多个空格替换为单个空格。
找出字符串中最长的单词,并将其转换为大写。
打印修改后的字符串和最长单词到控制台。
输入:"   Java    and Python  are popular   programming languages  "
输出:
 修改后的字符串:"Java and Python are popular programming languages"
最长单词:Longest Word: "PROGRAMMING"

字符串 String——提示
给定一个由多个单词组成的字符串,单词之间由一个或多个空格分隔。你的任务是编写一个Java程序来满足以下要求:
移除字符串两端的空格。使用trim()方法去除字符串两端的空格
将字符串中连续的多个空格替换为单个空格。split(" +")来分割字符串中的单词(注意正则表达式中的空格和加号,加号表示一个或多个空格),
找出字符串中最长的单词,并将其转换为大写。toUpperCase()方法来转换字符串为大写
打印修改后的字符串和最长单词到控制台。

2.基本类型与包装类型

在Java里面,每一个基本类型都对应一个包装类型
long     <=>    Long
int        <=>    Integer
short    <=>    Short
byte      <=>   Byte
double  <=>   Double
float       <=>  Float
boolean <=>  Boolean
Char      <=>  Character

2.1 包装类型 ( Wrapper Class)

将对应的基本类型封装在内,得到一个类
大概就是这种形式:

class  Integer
{
    private int  value = 0;
    ... Getter / Setter / 其他方法 ...
}

使用Integer等包装类,都就可以统一用“对象”的思路来处理问题。

所有的类都是Object的子类,Interger也是。
但int, double, boolean...却不是。
所以有了包装类之后,有些地方会方便一些。

2.2 基本类型和包装类型的转换:

Integer a = new Integer(10);
    int b = a.intValue();

也可以写得简洁一些(Java支持自动转换)    
    Integer  k = 123;
    int  m = k;

数值类型可以与String类型转换

例如,
int  ->  String :
    String s = String.valueOf( 123 );
String -> int  :     
    int  a = Integer.valueOf("123");

2.3 包装类的作用

为什么要设计这些包装类?
提供一些用于转换的方法
将所有类型统一成 “类”的范围,都是Object的子类。

注:包装类还有许多其他方法,暂不介绍。

2.4 包装类——编程练习

编写一个Java程序,完成以下任务:

创建一个包含各种包装类对象(Integer, Double, Character, Boolean)的数组。
遍历这个数组,对于数组中的每一个元素,执行以下操作:
如果元素是Integer或Double类型,计算并打印其值的二倍。
如果元素是Character类型,判断并打印其是否为字母(使用Character.isLetter()方法)。
如果元素是Boolean类型,打印其相反的值(即,如果是true打印false,反之亦然)。

包装类——参考代码框架

java">public class WrapperClassDemo {public static void main(String[] args) {Object[] myArray = {Integer.valueOf(10),Double.valueOf(2.5),Character.valueOf('a'),Boolean.TRUE};for (Object obj : myArray) {// 在这里实现对数组元素的判断和处理}}
}

在遍历循环中,使用instanceof判断obj的实际类型,并执行相应的操作。记得对于Integer和Double类型,需要进行类型转换才能进行数学运算。
 


http://www.ppmy.cn/embedded/10533.html

相关文章

第十、十一章 折线图 + 地图 + 柱状图的绘制

第十章 折线图的绘制 官网&#xff1a;pyecharts - A Python Echarts Plotting Library built with love. 画廊官网&#xff1a;Document 懒人工具&#xff1a;懒人工具-手机APP工具下载-手机软件下载大全 - 173软件站 (ab173.com) 导学 json 定义 &#xff08;1&#xff…

数据可视化(五):Pandas高级统计——函数映射、数据结构、分组聚合等问题解决,能否成为你的工作备用锦囊?

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

Linux i2c-tool工具基础使用

一.i2cdetect i2cdetect 是一个用户空间程序&#xff0c;用于扫描 I2C 总线上的设备。它输出一个表格&#xff0c;其中包含指定总线上检测到的设备列表。以下是 i2cdetect 的使用方法&#xff1a; 运行扫描&#xff1a; 要执行 I2C 扫描&#xff0c;请使用以下命令&#xff1…

【GD32】_时钟架构及系统时钟频率配置

文章目录 一、有关时钟源二、系统时钟架构三、时钟树分析四、修改参数步骤1、设置外部晶振2、选择外部时钟源。3、 设置系统主频率大小4、修改PLL分频倍频系数 学习系统时钟架构和时钟树&#xff0c;验证及学习笔记如下&#xff0c;如有错误&#xff0c;欢迎指正。主要记录了总…

分布式与微服务的区别

首先分布式是一种系统部署模式&#xff0c;将一个系统分成多个不分进行运行。而微服务架构是一种更加精细化的设计方法&#xff0c;它是分布式的一个分支&#xff0c;主要强调将一个单体应用拆分成一组小型松耦合的服务&#xff0c;每个服务专注于单一业务功能并能够独立部署和…

仓储管理解决方案:混合低代码与定制开发,实现高灵活性与高效率

引言 在当今竞争激烈的商业环境中&#xff0c;仓储管理成为了企业供应链中不可或缺的一环。有效的仓储管理不仅可以帮助企业降低库存成本、提高库存周转率&#xff0c;还能够提升客户满意度和整体运营效率。然而&#xff0c;随着市场需求的不断变化和业务规模的不断扩大&#…

面试官竟然是个小黑子,问我用过状态机吗

状态机的组成 状态机是一种抽象的数学模型&#xff0c;描述了对象或系统在特定时间点可能处于的各种状态以及状态之间的转换规则。它由一组状态、事件、转移和动作组成&#xff0c;用于模拟对象在不同条件下的行为和状态变化。 状态机包括以下基本组成部分&#xff1a; 状态&…

SpringBoot常用20个注解及其作用

1、SpringBootApplication: 这是一个组合注解&#xff0c;包括了Configuration、EnableAutoConfiguration 和 ComponentScan。它标识了一个主程序类&#xff0c;用于启动 Spring Boot 应用。 2、RestController: 这个注解用于标识一个类&#xff0c;表示这个类中的所有方…