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

目录

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,反之亦然)。

包装类——参考代码框架

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类型,需要进行类型转换才能进行数学运算。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值