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

【JAVA】Java第十三节:String类(String相关方法,以及StrinBuftrer , StringBulder相关方法)

本文详细介绍了String类以及常用的String相关方法,以及StrinBuftrer , StringBulder相关方法的使用,建议有印象即可,不需要都记住,使用时去查取即可

一、创建一个String类型的变量

我们平时创建String类型的变量一般是第一种形式,

但是String其实是一个Java定义好的类,所以我们也可以以创建引用--对象的形式创建String类型的变量

我们也可以把一个字符串数组传给String类的构造方法,创建一个String类型的变量


二、关于String类

通过上面的介绍,我们知道了String类,我们去看看它内部到底是怎么实现的

原来String类内部也是定义了(char)字符数组 ( 在JDK1.8中是byte类型),所以它可以接收数组,y也实现了几个接口包括之前说过的Comparable 接口。

并且在String类中定义了很多好用的方法,供我们直接去使用,下面我们来演示这些方法


三、String对象之间的比较

1. ==比较:

按照是否引用同一个对象比较


2. boolean equals(Object anObject) 方法:

按照字符串每个字符是否一致比较,返回值boolean类型


3. int compareTo(String s) 方法:

按照字符串每个字符是否一致比较,返回值是 int 类型

前后比较,大了就是正数,小了就是负数,相等为0


4. int compareToIgnoreCase(String str) 方法:

与compareTo方式相同,但是忽略大小写比较


四、字符串的查找

1.char charAt(int index)

根据下标值查找字符串中的字符


2.int indexOf(int ch)4种


3.int lastIndexOf(int ch)4种

和indexOf 的区别只是它是从后往前开始找



五、转化

5.1序列化与反序列化

1.value of() 数字转字符串

2.字符串转数字

Integer.parseInt  

Double.parseDouble


5.2大小写转换

// 小写转大写    toUpperCase();  

// 大写转小写    toLowerCase( );


5.3. 格式化输出

String.format("%d-%d-%d", 2024, 12,6);


六、字符替换

 replace 4种


七、字符串拆分

String[] split

拆分IP地址

注意事项:

1. 字符 "|", "*" , "+", "." 都得加上转义字符,前面加上 "\\" 

2. 而如果是 "\" ,那么就得写成 "\\\\" 

3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符.


八、字符串截取

String substring

Java中的取一定范围的方法,一般都是左闭右开的

String trim()去除左右两边空格


九、字符串的不可变性

String是一种不可变对象. 字符串中的内容是不可改变。字符串不可被修改

你所有的对字符串进行改变的方法或者做法都是创建了一个新对象,而不是一开始的那个数组。

原因是在源码中, char value [ ] 数组都被 private 修饰,这个数组只能在String类中使用,除非直接对char value [ ] 进行set get.

3. StringBuilder和StringBuffer

StringBuilder和StringBuffer都是用于处理字符串的可变类。它们的出现主要用于解决Java中字符串拼接的效率问题

在Java中,String类是不可变的,也就是说每次对字符串进行拼接(+=)、删除、替换等操作时,都会创建一个新的String对象,原来的String对象会被丢弃,这样会造成大量的内存开销。

而StringBuilder和StringBuffer则是可变的,它们可以在原有对象上直接进行操作,不会创建新的对象,因此可以大大提高字符串的操作效率。

revrse(逆序)

insert(插入)

delete(删除)

tostring(变字符串)

它们的区别

 面试题: 1. String、StringBuffer、StringBuilder的区别

String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.

StringBuffer与StringBuilder大部分功能是相似的

StringBuffer采用同步处理,属于线程安全操作;

而StringBuilder未采用同步处理,属于线程不安全操作

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

相关文章:

  • WordPress安装或访问时出现数据库连接错误的处理方式
  • JAVA-面向对象基础
  • [Java]项目入门
  • opencv Mat To Heif
  • 二刷代码随想录第24天
  • Java设计模式之状态模式架构高扩展的订单状态管理
  • Yagmail邮件发送库:如何用Python实现自动化邮件营销?
  • 李宏毅深度学习-Pytorch Tutorial2
  • SaaS财务软件:赋能企业数字化转型
  • FPGA实战篇(按键控制LDE实验)
  • 在Ubuntu-22.04 [WSL2]中配置Docker
  • ACM:均分纸牌
  • ThreadFactory
  • WEB开发: Node.js路由之由浅入深(一) - 全栈工程师入门
  • NES游戏机项目制作笔记(未完成)
  • 云服务器部署upload-labs-docker(文件上传靶场)环境 以及相关报错问题
  • Elasticsearch入门之HTTP基础操作
  • maven聚合项目部署到tomcat上
  • 基于Matlab生育模型和年龄别死亡率的未来人口预测与结构动态分析
  • 公共服务 kkFileView 4.1 文件预览 Docker 一键部署
  • 福昕PDF低代码平台
  • Ubuntu环境安装RabbitMQ
  • 集合ArrayList
  • C#怎么判断电脑是否联网
  • 软件体系结构复习-02 软件体系结构定位及构建
  • 鸿蒙获取 APP 信息及手机信息
  • Linux-V4L2摄像头应用编程
  • 掌握谈判技巧,达成双赢协议
  • Mysql - 存储引擎
  • 借助 CC-Link IE FB 转 Profinet 网关实现西门子 PLC 接入三菱 PLC 系统的解决策略