【Java】String类常用方法总结

news2025/1/8 5:15:28

文章目录

  • 1丶boolean equals(Object anObject) 方法
  • 2丶int compareTo(String s) 方法
  • 3、 int compareToIgnoreCase(String str) 方法
  • 4丶字符串查找常用方法.
  • 5.丶字符串转化常用方法.
    • 大小写转换
    • 字符串转数组
  • 6丶字符串替换
  • 7丶字符串拆分
  • 8丶字符串截取
  • 9丶去掉左右空格(String trim()方法)


1丶boolean equals(Object anObject) 方法

这个方法的作用是比较两个引用所指向的对象当中的内容是否一致。
String类重写了父类Object中equals方法,Object中equals默认按照==比较,String重写equals方法后,按照如下规则进行比较:
在这里插入图片描述

//有注释版本
public boolean equals(Object anObject) {
// 1. 先检测this 和 anObject 是否为同一个对象比较,如果是返回true
            if (this == anObject) {
                return true;
            }
// 2. 检测anObject是否为String类型的对象,如果是继续比较,否则返回false
            if (anObject instanceof String) {
// 将anObject向下转型为String类型对象
                String anotherString = (String)anObject;
                int n = value.length;
// 3. this和anObject两个字符串的长度是否相同,是继续比较,否则返回false
                if (n == anotherString.value.length) {
                    char v1[] = value;
                    char v2[] = anotherString.value;
                    int i = 0;
// 4. 按照字符串顺序,从前往后逐个字符进行比较
                    while (n-- != 0) {
                        if (v1[i] != v2[i])
                            return false;
                        i++;
                    }
                    return true;
                }
            }

例如:
在这里插入图片描述
输出:true
在这里插入图片描述
输出:false

2丶int compareTo(String s) 方法

这个方法的作用是比较两个字符串的大小关系。相同返回0,大于返回一个整数,小于返回一个负数。
因为String这个类实现了Comparable接口,所以重写了compareTo方法。
在这里插入图片描述
举例:
在这里插入图片描述
在这里插入图片描述
那他的返回值为什么是4或-4而不是5或-5或者其他的数字呢,如果你想研究它的返回值,你可以进入它的源码中看一下:
在这里插入图片描述
所以具体可以总结为:

  1. 先按照次序比较,如果出现不等的字符,直接返回这两个字符的大小差值
  2. 如果前k个字符相等(k为两个字符长度最小值),返回值两个字符串长度差值

3、 int compareToIgnoreCase(String str) 方法

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

例如:
在这里插入图片描述
此时我们认为str1和str2是相等的,输出0
在这里插入图片描述

4丶字符串查找常用方法.

方法功能
char charAt(int index)返回index位置上字符,如果index为负数或者越界,抛出IndexOutOfBoundsException异常
int indexOf(int ch)返回ch第一次出现的位置,没有返回-1
int indexOf(int ch, int fromIndex)从fromIndex位置开始找ch第一次出现的位置,没有返回-1
int indexOf(String str)返回str第一次出现的位置,没有返回-1
int indexOf(String str, int fromIndex)从fromIndex位置开始找str第一次出现的位置,没有返回-1
int lastIndexOf(int ch)从后往前找,返回ch第一次出现的位置,没有返回-1
int lastIndexOf(int ch, int fromIndex)从fromIndex位置开始找,从后往前找ch第一次出现的位置,没有返回-1
int lastIndexOf(String str)从后往前找,返回str第一次出现的位置,没有返回-1
int lastIndexOf(String str, int fromIndex)从fromIndex位置开始找,从后往前找str第一次出现的位置,没有返回-1

5.丶字符串转化常用方法.

大小写转换

在这里插入图片描述
在这里插入图片描述

字符串转数组

在这里插入图片描述
在这里插入图片描述

6丶字符串替换

方法功能
String replaceAll(String regex, String replacement)替换所有的指定内容
String replaceFirst(String regex, String replacement)替换首个内容

在这里插入图片描述
在这里插入图片描述

7丶字符串拆分

方法功能
String[] split(String regex)将字符串全部拆分
String[] split(String regex, int limit)将字符串以指定的格式,拆分为limit组

在这里插入图片描述
在这里插入图片描述
注意事项:

  1. 字符"|“,”*“,”+"都得加上转义字符,前面加上 “\\” .
  2. 而如果是 “\” ,那么就得写成 “\\\\” .
  3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符.

8丶字符串截取

方法功能
String substring(int beginIndex)从指定索引截取到结尾
String substring(int beginIndex, int endIndex)截取部分内容

在这里插入图片描述
注意事项:

  1. 索引从0开始
  2. 注意前闭后开区间的写法, substring(0, 4) 表示包含 0 号下标的字符, 不包含 4 号下标

9丶去掉左右空格(String trim()方法)

在这里插入图片描述

在这里插入图片描述
注意:只会去掉字符串中的左右空格,但保留中间空格,也会去掉字符串开头和结尾的空白字符(空格, 换行, 制表符等)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/787614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

备战秋招 | 笔试强训14

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、下列有关this指针使用方法的叙述正确的是() A. 保证基类保护成员在子类中可以被访问 B. 保证基类私有成员在子类中可以被访问 C. 保证基类共有成员在子类中可以被访问 D.…

机器学习 day31(baseline)

语音识别的Jtrain、Jcv和人工误差 对于逻辑回归问题,Jtrain和Jcv可以用分类错误的比例,这一方式来代替单单只看Jtrain,不好区分是否高偏差。可以再计算人类识别误差,即人工误差,作为基准线Jtrain与baseline对比只高了…

keepalived + lvs (服务端socket 客户端socket) udp协议

1、Keepalived 1. 1 keepalived 简介 1.1.1 什么是keepalived Keepalived一个基于VRRP 协议来实现的 LVS 服务高可用方案,可以利用其来解决单点故障。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER)&#xff…

MFC第二十二天 三种绘图句柄与三大坐标系(三大CDC派生类)简介以及应用、Invalidate刷新函数的功能和用法简介

文章目录 三种绘图句柄与三大坐标系(三大CDC派生类)简介以及应用三种HDC句柄三大CDC派生类什么是放泄露架构使用HDC句柄进行常见图形绘制演示 HPEN和HBRUSH句柄HPEN的创建 Invalidate刷新函数的功能和用法简介应用Win32下MFC下 附录 三种绘图句柄与三大坐…

【算法题解】51. 二叉树的最近公共祖先

这是一道 中等难度 的题 https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/ 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为…

Transformer+医学图像最新进展【2023】

Transformer主要用于自然语言处理领域。近年来,它在计算机视觉(CV)领域得到了广泛的应用。医学图像分析(MIA,Medical image analysis)作为机器视觉(CV,Computer Vision)的一个重要分支,也极大地受益于这一最先进的技术。 机构:新加坡国立大学机械工程系、中山大学智能系…

MySQL创建全文索引时,遇到“Temporary file write failure”的错误

MySQL创建全文索引时,遇到“Temporary file write failure”的错误 环境信息 MySQL Version: 8.0.28 engine: InnoDB rows: 100 index length: 10MB data length: 30MB 笔者在MYSQL上执行创建添加全文索引的语句:alter table users add fulltext index …

机器学习原理(1)集成学习基本方法

一.什么是集成学习 集成学习(ensemble learning)通过将多个学习器进行组合来完成学习任务。下图显示集成学习的一般结构(取自周志华老师的西瓜书),个体学习器通常由一种现有的学习算法从训练数据产生,例如…

Vue项目实战失物招领

经过两天的时间,搞定了一个Vue版本的项目,在这里留下这两天的点点滴滴,这个项目主要实现了失物招领的相关功能,比如发布丢失信息,发布拾到信息,跑腿信息,用户注册,用户登录等相关功能…

故障分析 | Kubernetes 故障诊断流程

一、本文概述及主要术语 1.1 概述 本文基于 Pod 、Service 和 Ingress 三大模块进行划分,对于 Kubernetes 日常可能出现的故障问题,提供了较为具体的排查步骤,并附上相关解决方法或参考文献。 1.2 主要术语 Pod: Kubernetes 中创建和管理的…

Spring Boot日志:SLF4J和Logback

日志的分类 SpringBoot中的日志库分为两种: 实现库:提供具体的日志实现,例如日志级别的控制、打印格式、输出目标等。外观库:自身不提供日志实现,而是对其他日志库进行封装,从而方便使用。基于外观模式实…

接口自动化测试-Python+Requests+Pytest+YAML+Allure配套撸码(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 接口自动化框架&a…

软件测试/测试开发丨Pytest测试框架学习笔记

Pytest 参数化用例 测试登录场景 测试登录成功,登录失败(账号错误,密码错误)*创建多种账号: 中⽂文账号,英⽂文账号*普通测试用例方法Copy 多份代码 or 读⼊入参数?*一次性执⾏多个输⼊入参数* def test_param_login_ok():# 登录成功user…

解决分类任务中数据倾斜问题

大家好,在处理文本分类任务时,基准测试流行的自然语言处理架构的性能是建立对可用选项的理解的重要步骤。在这里,本文将深入探讨与分类相关的最常见的挑战之一——数据倾斜。如果你曾经将机器学习(ML)应用于真实世界的…

selenium---滑动框验证码破解

前言 目前常见的验证码有很多种,比如数字验证码,滑动验证码,以及滑动补全图像验证码等,关于验证码的操作属于我们在UI自动化很大的一个障碍,今天安静来介绍下如何通过python来实现我们滑动验证码 滑动验证码 先来一…

MySQL之全文索引二三事

全文索引 MySQL全文索引是一种用于快速搜索文本字符串的索引,在MySQL数据库中,它可以用来提高文本搜索的效率。全文索引不同于普通索引,普通索引只是对列值进行排序,而全文索引则会对列的内容进行分词,并且对每个分词…

RocketMQ重复消费的解决方案::分布式锁直击面试!

文章目录 场景分析方法的幂等分布式锁Redis实现分布式锁抢锁的设计思路 分布式锁案例 直击面试rocketmq什么时候重复消费消息丢失的问题消息在哪里丢失发送端确保发送成功并且配合失败的业务处理消费端确保消息不丢失rocketmq 主从同步刷盘 场景分析 分布式系统架构中,队列是分…

go-zero学习 第六章 分布式事务dtm

go-zero学习 第六章 分布式事务dtm 1 参考文档2 官方示例3 go-zero使用dtm参考代码3.1 go-zero支持dtm 代码操作步骤※3.2 gozerodtm 代码操作步骤 4 注意事项4.1 grpc接口地址※4.2 动态调用过程4.3 dtm的回滚补偿4.4 barrier的空补偿、悬挂等4.5 barrier在rpc中本地事务 1 参…

多媒体工作中用到的小工具

安利下嵌入式多媒体用到的各种小工具 下面是同事们推荐的 以下是对这些软件的简要介绍: ocenaudio:ocenaudio是一款跨平台的音频编辑软件,它提供了直观的界面和丰富的功能,可以帮助用户进行音频剪辑、修复、转码等操作。 MKVToolNix:MKVToolNix是一款开源的多媒体容器格…

web-vim信息泄露

(1)知识补充 vim 交换文件名 在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容   以 index.php 为例&#xff1…