当前位置: 首页 > 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.lqws.cn/news/600049.html

相关文章:

  • AKAZE(Accelerated-KAZE)图像特征点检测算法详解和C++代码实现示例
  • 初识QT-对象树
  • Adobe AI高效设计秘籍与创新思维进阶
  • STM32
  • 三极管是NPN还是PNP
  • 为什么Netty 性能高
  • 关于vue2使用elform的rules校验
  • 第8章路由协议,RIP、OSPF、BGP、IS-IS
  • Zephyr RTOS 信号量 (Semaphore)
  • SpringMVC--使用RESTFul实现用户管理系统
  • 鸿蒙学习——开发中遇到的问题记录
  • Windows VMWare Centos Docker部署Springboot + mybatis + MySql应用
  • Embeddings模型
  • IOday2--7.1
  • 工作中常用的Git操作命令(一)
  • 电脑键盘不能打字了怎么解决 查看恢复方法
  • Wisdom SSH 与宝塔面板:深度对比剖析
  • P1312 [NOIP 2011 提高组] Mayan 游戏
  • 将POD指定具体机器上运行
  • ip网络基础
  • 睿抗-2025年江西省第三题
  • python+uniapp基于微信小程序的流浪动物救助领养系统nodejs+java
  • 3.2.2、CAN总线-过滤器的使用
  • SQL学习笔记6
  • sqlmap学习笔记ing(1.Easy_SQLi(时间,表单注入))
  • 位运算经典题解
  • 高并发场景下,TCP/UDP丢包的隐藏陷阱
  • c语言学习_初识c语言21
  • 伊吖学C笔记(7、地址、指针、指针数组)
  • 面试拷打-20250701