当前位置: 首页 > 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.dtcms.com/a/264371.html

相关文章:

  • Flask+LayUI开发手记(十):构建统一的选项集合服务
  • Rust 定义与实例化结构体
  • php数据导出pdf文件
  • 目标检测系列(五)已标注数据集(yolo格式)导入labelstudio继续标注
  • 浏览器工作原理32 [#]同源策略:为什么XMLHttpRequst不能跨域请求资源
  • Android11 添加自定义物理按键事件监听回调
  • Nginx重定向协议冲突解决方案:The plain HTTP request was sent to HTTPS port
  • uniapp选择相册
  • CAD文件处理控件Aspose.CAD教程:使用 Python 将绘图转换为 Photoshop
  • 【基础】Golang 执行命令shell命令 + Start和Run方法详解
  • ES6数组的`flat()`和`flatMap()`函数用法
  • 黑马python(二十三)
  • vue2 el-select下拉选择框 点击其他位置或者弹窗关闭下拉框/点击取消时,下拉框变成之前的值
  • 2025年跨端云真机测试平台深度测评:XR与折叠屏时代的兼容性之战
  • 《量化开发》系列 第 1 篇:金融知识基础入门指南(附 GitHub 学习项目)
  • 什么是 BigKey?
  • 定时器的设计
  • 电源芯片之DCDC初探索ING
  • 用lines_gauss的width属性提取缺陷
  • 视频内存太大怎么压缩变小一点?视频压缩的常用方法
  • 复现nanoGPT——train.py(详细版拆解)
  • k8s将service的IP对应的不同端口分配到不同的pod上
  • 【普通人学AI】玩转 Prompt 提示词工程 (一)
  • 使用 icinga2 写入 TDengine
  • 翻译《The Old New Thing》- 解除路径的 MAX_PATH 限制仅适用于路径本身
  • 通过http调用来访问neo4j时报错,curl -X POST 执行指令报错
  • C# 程序:查看 PageUp 热键消息映射表
  • torch.nn
  • Vue 安装使用教程
  • [Python] -基础篇8-Python中的注释与代码风格PEP8指南