Java中的String类的常用方法(对于字符串的常用操作)

news2024/11/27 13:43:06

目录

一、获取指定索引的字符

二、 获取指定字符或者字符串的索引位置

三、判断字符串是否以指定内容开头或结尾

四、替换指定的字符或者是字符串

五、获取字符串的子串

六、将字符串转换为字符数组

 七、比较字符串的内容是否相等

 八、连接字符串

九、比较两个字符串的大小


一、获取指定索引的字符

charAt(int index)该方法接受一个参数,就是指定的索引,返回指定索引位置的字符,返回值是字符型。

 public static void main(String[] args) {
        String s="abcdef";
        System.out.println(s.charAt(1));
    }

二、 获取指定字符或者字符串的索引位置

indexOf(char ch)该方法接受一个参数,是字符类型,返回值是int型,表示指定字符第一次出现在字符串中的位置,没有找到就返回-1,注意是第一次!

indexOf(char ch,int fromIndex)表示的是从fromIndex索引开始,上面的是表示从索引0开始。

indexOf(String s)该方法接受一个参数,是字符串类型,返回值是String类型,表示指定字符串第一次出现在字符串中的索引位置,没有找到返回-1,注意是第一次出现!

indexOf(String s,int fromIndex)从fromIndex索引开始。

 public static void main(String[] args) {
        String s="abcdbefbef";
        System.out.println(s.indexOf('b',3));
        System.out.println(s.indexOf('b'));
        System.out.println(s.indexOf("bef"));
        System.out.println(s.indexOf("bef",6));
    }

三、判断字符串是否以指定内容开头或结尾

startsWith(String s)判断字符串是否以指定内容开头,是的话返回true,否的话返回false。

endsWith(String s)判断字符串是否以指定内容结尾,是的话返回true,否的话返回false。

 public static void main(String[] args) {
        String s="abcdbefbef";
       System.out.println(s.startsWith("abc"));
       System.out.println(s.startsWith("bc"));
       System.out.println(s.endsWith("ef"));
       System.out.println(s.endsWith("cef"));
    }

四、替换指定的字符或者是字符串

replace(char oldchar,char newchar)第一个参数是被替换的,第二个参数是用来替换的,虽然参考上是字符型,但是字符型和字符串String型都是可以的,它是表示满足条件的全都替换,而不是只是一个!

replaceAll(String regex,String newchar)看字面意思它和replace方法一个是替换单个匹配项,一个是全都替换,但不是这样的!他们都是替换匹配所有项,只不过replaceAll它的接收参数是正则表达式而已。

要特别主要的是,这两个方法的使用不会改变原来的字符串,他们只是创建了一个新的字符串!!!

public static void main(String[] args) {
        String s="abcdab1a2";
        System.out.println(s.replace('a','1'));
       System.out.println(s.replace("b","1"));
       System.out.println(s.replaceAll("\\w","9"));
       System.out.println(s);
    }

五、获取字符串的子串

substring(int begin)接受一个参数表示开始的索引位置,一直到末尾,截取的子串

substring(int begin,int end)截取的子串是[begin,end),从begin开始,到end结束,但是不包括end截取的子串。

注意两者都不改变原来的字符串!

 public static void main(String[] args) {
        String s="012345";
       System.out.println(s.substring(2));
       System.out.println(s.substring(2,4));
       System.out.println(s);
    }

六、将字符串转换为字符数组

toCharArray()将指定的字符串转换为字符数组。

 public static void main(String[] args) {
        String s="012345";
       char[] c=s.toCharArray();
       for(char cc:c){
           System.out.println(cc);
       }
       System.out.println(s);
    }

 七、比较字符串的内容是否相等

equals(String s)比较两个字符串的内容是否相等,原本equals比较的是地址,只不过String重写了equals方法,所以比较的是字符串的内容

equalsIgnoreCase()忽略大小写比较字符串的内容是否相等。

 public static void main(String[] args) {
        String s1="abc",s2="ABC";
        System.out.println(s1.equals(s2));
        System.out.println(s1.equalsIgnoreCase(s2));
    }

 八、连接字符串

concat(String s)连接字符串,参数中的字符串连接在后面。

 public static void main(String[] args) {
        String s1="abc",s2="ABC";
        System.out.println(s1.concat(s2));
        System.out.println(s2.concat(s1));
    }

九、比较两个字符串的大小

compareTo()方法,参数接受一个字符串
比较大小的规则其实就是按照ASCII的大小比较的
两个字符串,出现的第一个两个字符不同的,返回他们的ASCII值的
如果他们的字符都一样的话,返回的就是他们的长度差
 
由此可知,两个字符串相等的话,返回的就是0
如s1.compareTo(s2)
 
比较的话,是s1-s2的哦,谁调用,谁就减!!!
public static void main(String[] args) {
        String s1="abc",s2="abd",s3="abcde",s4="abc";
        System.out.println(s1.compareTo(s2));
        System.out.println(s2.compareTo(s1));
        System.out.println(s1.compareTo(s3));
        System.out.println(s3.compareTo(s1));
        System.out.println(s1.compareTo(s4));
    }

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

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

相关文章

[CTF]-PWN:C++文件更换libc方法(WSL)

C文件与C文件更换libc有很多不一样的地方,我是在写buu的ciscn_2019_final_3才意识到这个问题,C文件只需要更换libc和ld就可以了,但是C文件不同,除了更换libc和ld,它还需要更换libstdc.so.6和libgcc_s.so.1 更换libc和…

指针习题回顾(C语言)

目录 数组指针和指针数组 编程题: 字符串逆序 字符串左旋 题目1概述: 代码实现: 题目2概述: 代码实现: 调整奇偶顺序 题目概述: 代码实现: 冒泡排序 二级指针 代码解读: …

力扣---通配符匹配

题目描述: 给你一个输入字符串 (s) 和一个字符模式 (p) ,请你实现一个支持 ? 和 * 匹配规则的通配符匹配: ? 可以匹配任何单个字符。 * 可以匹配任意字符序列(包括空字符序列)。 判定匹配成功的充要条件是&#xff…

lazarus:LCL 嵌入 fpwebview 组件,做一个简单浏览器

从 https://github.com/PierceNg/fpwebview 下载 fpwebview-master.zip 简单易用。 先请看 \fpwebview-master\README.md cd \lazarus\projects\fpwebview-master\demo\lclembed 修改 lclembed.lpr 如下,将 fphttpapp. 注释掉,因为我用不上。 progr…

【STM32 CubeMX】I2C层次结构、I2C协议

文章目录 前言一、I2C的结构层次1.1 怎样在两个设备之间传输数据1.2 I2C如何传输数据1.3 硬件框图1.4 软件层次 二、IIC协议2.1 硬件连接2.2 I2C 总线的概念2.3 传输数据类比2.3 I2C信号2.4 I2C数据的含义 总结 前言 在STM32 CubeMX环境中,I2C(Inter-In…

相机图像质量研究(24)常见问题总结:CMOS期间对成像的影响--摩尔纹

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

红队学习笔记Day5 --->总结

今天先不讲新知识,来小小的复习一下 1.8888?隧道端口你怎么回事 在做隧道和端口转发的时候,我们常见的是通过一台跳板机,让外网的机器去远程连接到内网的一些机器,这时候就常见一些这样的命令 以防忘了,先…

面试突击1

1.当线程没有拿到资源时,用户态和内核态的一个切换 在操作系统中,进程和线程是执行程序的基本单位。为了管理这些单位,操作系统使用了一种称为“进程状态”的机制,其中包括用户态和内核态两种状态。这两种状态代表了进程或线程在…

ubuntu屏幕小的解决办法

1. 安装vmware tools , 再点自适应客户机 执行里面的vmware-install.pl这个文件 :sudo ./vmware-install.pl 执行不了可以放到家目录,我放在了/home/book 里面 最后点这个自适应客户机 然后我这里点不了是因为我点了控制台视图和拉伸客户机&#xff0c…

[word] word怎么取消隐藏文字 #职场发展#微信

word怎么取消隐藏文字 Word有很多实用的技巧,学会了可以节省大量的时间在编辑上。今天就给大家分享下word怎么取消隐藏文字这个小技能。 1.选中内容设置 首先先显示段落符号标记(快捷鍵Ctrl Shift8),之后选中文本内容。 2.设置取消隐藏的文字 点击开始…

unreal engine5.1中设置convex decomposition凸包分解

UE5系列文章目录 文章目录 UE5系列文章目录前言一、convex decomposition是什么?二、convex decomposition属性设置 前言 今天使用ue5根据网上教程制作可操控直升机,找属性convex decomposition凸包分解,默认的碰撞如下图 如果想使用精细化…

回溯题中借助哈希法来巧妙去重的操作

今天总结一下回溯法以来做过的这些题,我又发现一个困扰了我的问题,就是在491. 非递减子序列、46. 全排列、47. 全排列 II中都有涉及到用哈希法,去记录曾经用过的元素,下面来总结一下吧。 首先得知道,为什么会用到哈希法…

OpenAI 最新发布的从文本生成视频模型 Sora 炸裂登场,它能根据文字指令创造逼真且富有想象力的场景

文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 此页面上的所有视频均由 Sora 直接生成,未经修改。 OpenAI - Sora is an AI model that can create realistic and imaginative scenes f…

poetry,一个好用的Python项目依赖管理库

🏷️个人主页:鼠鼠我捏,要死了捏的主页 🏷️付费专栏:Python专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前言 在 Python 开发领域,项目依赖管理是一个至关重要的问题。Python Poetry 是一个现代化的项目依赖管理工具,旨在简化 Python 项目的依赖管理和打包…

图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化

图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化 卷积神经网络的一些基本概念:图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化 1.图像卷积、步长、填充 图像卷积:卷积核矩阵在一个原始图像矩阵上 “从上往下、…

C++ STL: list使用及源码剖析

list使用 list常用函数及使用&#xff08;1&#xff09; #include <iostream> #include <list> #include <algorithm>int main() {// 创建liststd::list<int> myList {5, 2, 9, 1, 5, 6};// 打印liststd::cout << "Original list: &quo…

记录一次涩涩情侣飞行棋密码破解

注本公众号&#xff0c;长期推送技术文章 知攻善防实验室 红蓝对抗&#xff0c;Web渗透测试&#xff0c;红队攻击&#xff0c;蓝队防守&#xff0c;内网渗透&#xff0c;漏洞分析&#xff0c;漏洞原理&#xff0c;开源 工具&#xff0c;社工钓鱼&#xff0c;网络安全。 81篇原…

算法-----高精度2(高精度乘法,高精度除法,高精度斐波那锲数列)

高精度乘法 对于高精度乘法来说似乎不像高精度加减法那样简单了&#xff0c;我们似乎得一个一个加了&#xff0c;因为我们都知道 abaaaaa…a(b个a)。如果真要这要的话那1e9*1e9不得超时啊&#xff0c;所以不能这样&#xff0c;我们还是得从乘法竖式入手 这样看似乎看不出来什…

代码随想录算法训练营DAY18 | 二叉树 (5)

一、LeetCode 513 找树左下角的值 题目链接&#xff1a;513.找树左下角的值https://leetcode.cn/problems/find-bottom-left-tree-value/ 思路一&#xff1a;递归回溯全局变量比深度。 class Solution {int Max_depth 0;int result 0;public int findBottomLeftValue(TreeNo…

CAN通讯协议学习

介绍 它是一种异步通讯&#xff0c;can_high和can_low两条线利用的是电位差传输信号&#xff0c;抗干扰能力强&#xff0c;但是必须要有can控制器如TJA1050&#xff08;我的开发板&#xff09; 当 CAN 节点需要发送数据时&#xff0c;控制器把要发送的二进制编码通过 CAN_Tx 线…