首页 > 编程语言 >JavaSE:String类常用方法(巨详细)

JavaSE:String类常用方法(巨详细)

时间:2024-05-28 17:58:03浏览次数:13  
标签:字符 常用 String 数组 字符串 JavaSE 方法 我们

1、引言

在学习C语言时,我们就已经了解了字符串,但是在C语言中字符串只能用字符数组或者指针来表示,没有特定的字符串类型,而在Java中,我们有了字符串这一特定的类型---String类。

2、String类的常用方法

2.1 字符串的构造方法

在我们定义一个字符串的时候,我们可以使用以下常用的三种方法:

1.通过双引号直接定义

2.通过new对象来定义

3.通过字符数组来定义 

public class Test {
    public static void main(String[] args) {
        //1.通过双引号直接定义
        String s1 = "abc";
        //2.通过new对象来定义
        String s2 = new String("abc");
        //3.通过字符数组来定义
        char[] arr = {'a','b','c'};
        String s3 = new String(arr);
    }
}

2.1.1【注意事项】 String类是一个引用类型

要知道String类是一个引用类型,并非字符串本身:

我们通过调试可以看到,String类中有着四种成员变量,而只有value数组中存储着字符串的值,

在String的源码中,也确实有着四种实例变量:

在这里我们只考虑value数组,因为value数组中存储着我们想要的字符串。

由于String是一个引用类型,在内存中有着以下的存储模式:

2.2 字符串间的比较方法

2.2.1 引用变量存储的值(地址)是否相同

我们已知字符串是引用变量,使用“==”来比较所引用的对象是否为同一份:

2.2.2 字符串的内容是否相同

Object类中的equals方法与“==”的作用相同,而String类重写了equals方法,用来比较字符串中的内容是否相同:

2.2.3 比较字符串的大小

我们点过去String类的源码,可以看到String类也实现了Comparable接口,

说明重写了compareTo方法,我们利用compareTo方法来比较字符串的大小(相同返回0,大于返回正数,小于返回负数):

Java中方法多样,当我们想忽略大小写来比较时,我们可以调用compareToIgnoreCase方法

2.3 String类的查找方法

2.3.1 charAt方法

我们可以通过这个方法来找到字符串中某一下标的字符:

2.3.2 indexOf方法

通过这个方法,我们可以查找(从前往后查找)到某一字符或字符串第一次出现的位置的下标,在String类中,有多个重载的方法,我们可以查找字符,也可以查找字符串。其中fromIndex参数是从指定下标开始查找:

2.3.3 lastIndexOf方法

顾名思义,lastIndexOf方法是从后往前查找某个字符或字符串,我们也可以指定位置从后往前查找:

2.4 与字符串有关的转换方法

2.4.1 数值和字符串的转换

我们可以通过valueOf方法来将数值转换为字符串:

通过相应数字的包装类型来将字符串转换为数字:

2.4.2 大小写转换

2.4.3 字符串和数组的转换

利用这个方法,可以直接将字符串转换为字符数组:

同样,字符数组也可以通过valueOf方法转换为字符串:

若是整形或其他类型数组,使用Arrays类中的toString方法:

2.4.4 对象转字符串

我们可以通过valueOf方法来将对象转换为字符串(重写toString方法):

2.5 字符串的拆分方法

我们可以以某个字符为分割线,将字符串分割为若干个字符数组:

我们也可以以多个字符来分割,用 | 符号来连接

注意:

当以字符"|","*","+","."来分割时,前面需要加上转义字符"\\",

而以"\"来分割时,需要写成"\\\\"(在字符串中就是"...\\...",因为为转义字符不能单独出现,"\\"来代表一个"\")

如下图所示:

2.6 字符串的截取方法

我们通过这个方法,可以截取所想要的子字符串(传入下标之后的子串,也可以指定范围)

代码演示:

1.

我们截取了3下标以后的子串(包括3下标):

2.

我们可以截取指定范围的子串,但注意:所给出的范围是左闭右开!!!

2.7 字符串的替换方法

1.

用一个新字符替换掉字符串中的某个旧字符:

2.

用新字符串替换掉字符串中的旧的子字符串:

3.

替换掉第一个出现的旧子字符串:

4.

替换所有出现的子字符串:

我们发现,使用replace替换字符串和使用replaceAll替换字符串的效果是相同的。

2.8 去除空白字符方法

我们可以利用这个方法来去除字符串开头和结尾(内部的无法去除)的空白字符(空格, 换行, 制表符等)。

OK~本次博客到这里就结束了,

感谢大家的阅读~欢迎大家在评论区交流问题~

如果博客出现错误可以提在评论区~

创作不易,请大家多多支持~

标签:字符,常用,String,数组,字符串,JavaSE,方法,我们
From: https://blog.csdn.net/2401_83595513/article/details/139266465

相关文章

  • SpringBoot升级到3.2.0报错Invalid value type for attribute ‘factoryBeanObjectTyp
    1现象SpringBoot由3.1.0升级为3.2.0时报的错:直接debug进入该行,看到报错的bean信息:看到是MyBatis出问题。2处理MyBatis先想到mybatis-spring版本较低导致。大家应该都用的MyBatisPlus,其实可暂缓升级3.2,等待一段时间,升级MyBatisPlus即可,目前MyBatisPlus的mybatis-spring......
  • String-2
    publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{Stringstr="abc";//将字符串转换成字节数组//默认按照当前工程的编码转换//UTF-8中一个汉字占用3个字节//GBK一个汉字占用2个字节b......
  • JVM调优维护常用工具之Jconsole 监控管理
    Jconsole(JavaMonitoringandManagementConsole)是JDK中自带的java监控和管理控制台,用于对JVM中内存、线程和类等的监控,是一个基于JMX(javamanagementextensions)的GUI性能监测工具。jconsole使用jvm的扩展机制(接口、抽象类、反射、DubboSPI机制之一JDK中的SPI等)获取......
  • RC-u2-2023【STL-string】
    Raicom-2023省赛题目~题意:A:最近出了一个饮料营养等级你们知道吗?例如无糖的饮料是A级,可乐是D级……B:那……无糖可乐是什么级别?C:AD级吧。A:出院!B:出什么院,你也给我进去!以上是某群中一段有趣的对话。请你按照里面的逻辑,在已知某些饮料的等级的情况下,给饮料定级。定级的......
  • linux下常用的终端命令
    文章目录1.MV移动文件、重命名文件1.1移动文件:mv[选项]源文件或目录目标文件或目录1.2文件重命名2.查找:文件,内容,统计文件2.1find查找文件2.2Linux查找文件内容3.查看当前用户4.linux修改文件所属用户和组5.复制文件:cpscp6.centos添加用户跟组7.centos7......
  • linux下常用软件
    文章目录1.GIMP图片编辑工具,用于处理文档图片2.星火字典stardict1.GIMP图片编辑工具,用于处理文档图片install在linux应用商店里搜索GIMP就能出来语言设置辑—首选项—界面—语言,在下拉列表中选择[汉语_zh-CN],对应的英文菜单式这样的Edit-Preferences-Inter......
  • mybatis异常: Invalid value type for attribute 'factoryBeanObjectType': java.lang
    问题描述:  springboot3.2.0版本以上编写mapper报错解决方案: 排查mybatilsplus自带的mybatils-spring,重新引入1<dependency>2<groupId>com.baomidou</groupId>3<artifactId>mybatis-plus-boot-starter</artifactId>4......
  • 写文档常用的一些图标
    unicode字符集为我们内置了许多图标,可以访问官网看所有的图标https://www.unicode.org/emoji/charts/full-emoji-list.html。然而这些图标太多了,一个解决方法是可以看最近流行的图标表情符号频率–Unicode,但是这样找还是比较麻烦,所以我这里就整理了一下写md文档常用的一些图标......
  • SQLServer常用运维SQL整理
    今天线上SQLServer数据库的CPU被打爆了,紧急情况下,分析了数据库阻塞、连接分布、最耗CPU的TOP10SQL、查询SQL并行度配置、查询SQL重编译的原因等等整理了一些常用的SQL1. 查询数据库阻塞?1SELECT*FROM sys.sysprocessesWHEREblocked<>0查询......
  • centos防火墙的常用命令
    一.防火墙的启动关闭启动:systemctlstartfirewalld关闭:systemctlstopfirewalld查看状态:systemctlstatusfirewalld开机禁用:systemctldisablefirewalld开机启用:systemctlenablefirewalld二.开放端口开启端口//开启流量http主要是80端口使用firewall-cmd--add-s......