1.API

1.1API概述

1.2如何使用API帮助文档

01

02

03

04

05

06

07

2.String类

2.1String类概述

String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!

2.2String类的特点

2.3String类的构造方法

2.4创建字符串对象两种方式的区别

2.5字符串的比较

2.5.1==号的作用

2.5.2equals方法的作用

2.6用户登录案例

2.6.1案例需求

已知用户名和密码,请用程序实现模拟用户登录。总共给三次机会,登录之后,给出相应的提示

2.6.2代码实现

2.7遍历字符串案例

2.7.1案例需求

键盘录入一个字符串,使用程序实现在控制台遍历该字符串

2.7.2直接遍历字符串

2.8统计字符次数案例

2.8.1案例需求

键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)

2.8.2代码实现

2.9字符串拼接案例

2.9.1案例需求

定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,

并在控制台输出结果。例如,数组为 int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]

2.9.2代码实现

2.10字符串反转案例

2.10.1案例需求

定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果

例如,键盘录入 abc,输出结果 cba

2.10.2代码实现

2.11 金额转换

2.11.1 案例需求

把2135变成:零佰零拾零万贰仟壹佰叁拾伍元

把789变成:零佰零拾零万零仟柒佰捌拾玖元

2.11.2 代码实现

2.12 手机号屏蔽

需求:以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽

最终效果为:131****9468

代码实现:

2.13 敏感词替换

需求1:键盘录入一个 字符串,如果字符串中包含(TMD),则使用***替换

需求2:如果要替换的敏感词比较多怎么办?

2.14 身份证信息查看

身份证的每一位都是有固定的含义:

要求打印内容方式如下:

人物信息为:

出生年月日:XXXX年X月X日

性别为:男/女

3.StringBuilder

StringBuilder 可以看成是一个容器,创建之后里面的内容是可变的。

当我们在拼接字符串和反转字符串的时候会使用到

3.1 基本使用

3.2 链式编程

3.3 练习1:对称字符串

需求:

键盘接受一个字符串,程序判断出该字符串是否是对称字符串,并在控制台打印是或不是

代码示例:

 

3.4 练习2:拼接字符串

需求:定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回。

调用该方法,并在控制台输出结果。

例如:数组为int[] arr = {1,2,3};

执行方法后的输出结果为:[1, 2, 3]

代码示例:

4. StringJoiner

基本使用:

关于字符串的小扩展:

  1. 字符串存储的内存原理

    String s = “abc”;直接赋值

    特点:

    此时字符串abc是存在字符串常量池中的。

    先检查字符串常量池中有没有字符串abc,如果有,不会创建新的,而是直接复用。如果没有abc,才会创建一个新的。

    所以,直接赋值的方式,代码简单,而且节约内存。

  2. new出来的字符串

    看到new关键字,一定是在堆里面开辟了一个小空间。

    String s1 = new String(“abc”);

    String s2 = “abc”;

    s1记录的是new出来的,在堆里面的地址值。

    s2是直接赋值的,所以记录的是字符串常量池中的地址值。

  3. ==号比较的到底是什么?

    如果比较的是基本数据类型:比的是具体的数值是否相等。

    如果比较的是引用数据类型:比的是地址值是否相等。

    结论:==只能用于比较基本数据类型。不能比较引用数据类型。