当前位置: 首页 > news >正文

学习字符串

1.API和API帮助文档

API: 应用程序编程接口

简单理解: 就是别人已经写好的东西, 我们不需要自己编写, 直接使用即可

比如: Random, Scanner

java API: 指的就是JDK中提供的各种功能的java类

这些类将底层的实现封装了起来, 我们不需要关心这些类是如何实现的, 只需要学习这些类如何使用即可

API帮助文档: 利用这个文档可以查找已经做好的类, 直接拿来使用, 提高效率

2.String

  • Strin是java定义好的一个类, 定义在java.lang包中, 所以使用的时候不需要导包
  • java程序中的所有字符串文字(例如: "abcdefg"), 都被视为此类的对象
  • 字符串不能发生改变, 它们的值在创建后不能被更改

java的内存配置:

注意: 只有第一种的赋值方式才有串池空间, 其他的都没有, 都直接存在堆内存当中, 没有区分

一般使用第一种赋值方式:

  • 因为第一种在直接赋值时系统会检查该字符串在串池中是否存在, 如果不存在就会创建新的, 如果存在会进行复用, 二者的地址值是相同的, 比如:
String s1 = "abc";
String s2 = "abc";

s1和s2的地址值一样

  • 而其他的需要创建新空间的就不会进行检查复用, 这样就会导致内存空间的浪费, 所以一般用第一种的直接赋值

3.字符串的比较

"==":

  • 如果比较的是基本数据类型, 那么比较的就是数据值
  • 如果比较的是引用数据类型, 那么比较的就是地址值

证明:

实现字符串比较数据值:(调用方法)

  • boolean equals(要比较的字符串): 完全一样结果才是true, 否则为false
  • boolean equalsIgnoreCase(要比较的字符串): 忽略大小写的比较

扩展:

如果是通过键盘录入的字符串进行比较, 内容一样但是结果为false

比如:

练习:

当然, 这里也可以不用创建对象来实现代码, 可以直接把正确的用户名和密码定义在测试类当中就行

遍历字符串:

  • public char charAt(int index): 根据索引返回字符
  • public int length(): 返回此字符串的长度
  • 数组的长度: 数组名.length
  • 字符串的长度: 字符串对象.length()

应用:

练习1:

练习2:

练习3:

练习4:

练习5:

截取字符串中的一部分并改为*, 比如123456------12**56

知识扩展:

  • String substring(int beginIndex, int endIndex) --------截取

注意点: 包头不包尾, 包左不包右, 只有返回值才是截取的小串

  • String substring(int beginIndex) ---------截取到末尾(重载方法)

应用:

知识扩展:

替换字符串中的一部分:

String replace(旧值,新值) 替换

注意点: 之后返回值才是替换之后的结果

应用:

4.StringBuilder

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

(一般使用在字符串的拼接和反转)

作用: 可以提高字符串的操作效率

在之前,直接进行相加拼接得到的字符串, 在多个字符串相加时, 会先相加前两个, 产生一个新的字符串, 然后再和下一个相加, 依此类推, 这样不仅很慢, 效率低, 而且中间产生的新字符串会占用空间内存

而StringBuilder是把要拼接的内容直接在StringBuilder对象中进行拼接, 且可以在原来的基础上进行修改

常用方法:

StringBuilder()----空的

StringBuilder(要拼接的东西)

public StringBuilder append(任意类型)------添加数据, 并返回

public StringBuilder reverse()-------反转容器中的内容

public int length()-------返回长度(字符出现的个数)

public String toString()-------通过toString就可以实现把StringBuilder转换为String

应用:

链式编程:

当我们在调用一个方法的时候,不需要用变量接收他的结果,可以继续调用其他方法

比如:

练习:

注意: 通过StringJoiner, StringBuilder得到的返回值要转换成String才能进行字符串可以进行的操作, 比如: equals比较内容

5.StringJoiner

  • StringJoiner跟StringBuilder一样, 也可以看成是一个容器, 创建之后里面的内容是可变的

作用: 提供字符串的操作效率, 而且代码的编写特别简洁, 但是目前市场上很少有人用

  • public StringJoiner(间隔符号):

创建一个StringJoiner对象, 指定拼接时的间隔符号

  • public StringJoiner(间隔符号, 开始符号, 结束符号):

创建一个StringJoiner对象, 指定拼接时的间隔符号,开始符号,结束符号

  • StringJoiner的成员方法:
  • public StringJoiner add(添加的内容):

添加数据, 并返回对象本身

  • public int length():

返回长度(字符出现的个数)

  • public String toString():

返回一个字符串(该字符串就是拼接之后的结果)

应用:

小技巧: Ctrl + Z可以撤回上一步操作, Z要大写!!!

练习1:

方法1:

方法2:(利用switch)

方法3:(是方法2的简化版)

练习2:

方法1: 用subString进行截取,把左边的字符截取出来拼接到右侧去

方法2: 可以把字符串先变成一个字符数组, 然后调整字符数组里面的数据, 最后把字符数组变成字符串

练习3:

扩展:
char[] newArr = str.toCharArray();//字符串变字符数组

String newStr = new String(newArr);//字符数组变字符串

练习4:

练习5:

练习6:

http://www.lryc.cn/news/578765.html

相关文章:

  • 菜谱大全——字符串处理艺术:从文本解析到高效搜索 [特殊字符][特殊字符]
  • LL面试题11
  • 【Python】numpy数组常用数据处理(测试代码+api例程)
  • Web前端之JavaScript实现图片圆环、圆环元素根据角度指向圆心、translate、rotate
  • vue-34(单元测试 Vue 组件的介绍)
  • 第六章 OpenCV篇—傅里叶变换与直方图
  • 通过http调用来访问neo4j时报错,curl -X POST 执行指令报错
  • 2025 推理技术风向标:DeepSeek-R1 揭示大模型从 “记忆” 到 “思考” 的进化路径
  • 8.Docker镜像讲解
  • 【读代码】百度开源大模型:ERNIE项目解析
  • 1.MySQL之如何定位慢查询
  • Python应用指南:利用高德地图API获取公交+地铁可达圈(三)
  • 达梦数据库配置SYSDBA本地免密登录
  • 怎么查看Android设备中安装的某个apk包名和启动页activity
  • CSS 安装使用教程
  • 【Python基础】11 Python深度学习生态系统全景解析:从基础框架到专业应用的技术深度剖析(超长版,附多个代码及结果)
  • python 继承
  • HDMI 2.1 FRL协议的流控机制:切片传输(Slicing)和GAP插入
  • [Python] -基础篇8-Python中的注释与代码风格PEP8指南
  • Qt_Creator入门基础知识
  • 顶级SCI极光优化算法!PLO-Transformer-GRU多变量时间序列预测,Matlab实现
  • CMS、OA、CRM、ERP 是什么意思?区别在哪里
  • 为什么js是单线程?
  • C++ 快速回顾(六)
  • 黑马python(二十三)
  • 【ArcGIS】矢量数据的叠加分析
  • SQL SELECT 语句
  • Python OrderedDict 用法详解
  • TypeScript系列:第六篇 - 编写高质量的TS类型
  • 宁德时代携手问界,以“厂中厂”模式加速扩产