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

java字符串String类的常用方法

java字符串String类的常用方法
字符串的创建:

(1)定义字符串直接赋值,在字符串池中开辟空间()

String str1=“Hello”;//在字符串池中写入字符串"hello"
String str2=“Hello”;//直接引用字符串池中的"Hello"
System.out.println(str1==str2);//地址相同,输出:true

(2)使用new关键字调用字符串的构造函数,在堆区开辟空间

String str1=new String(“Hello”);//在堆区开辟空间并写入字符串"Hello"
String str2=new String(“Hello”);//另外开辟空间并写入字符串"hello"
System.out.println(str1==str2);//地址不同,输出:false

(3)使用字符数组初始化字符串

char ch={“H”,“e”,“l”,“l”,“o”};
String str=new String(ch);//使用String的构造函数,将字符数组转化成字符串

String类的类名调用的方法:

String.valueof()方法

作用:将指定类型转换成字符串类型;

参数:需要传入的其他类型数据(char,int,boolean,double,float等);

返回:转换后的字符串;

//将int类型的a,转换为字符串类型
int a=1;
String str=String.value(a);

String.format()方法

作用:按照指定格式的字符创建生成新字符串;

参数:格式字符串(%d 整型占位符, %f浮点型占位符,%s 字符型占位符),动态参数值(按照格式中的占位符,依次传入对应值);

返回:按照规定格式产生的新字符串;

//使用format方法,将"第1名是小明成绩91.5分"转化成字符串
String str=String.format(“第%d名是%s成绩%f分”,1,“小明”,91.5);

String.join()方法

作用:将字符数组用指定的字符隔开;

参数:隔开数组的字符,依次传入需要连接的字符(直接传入字符数组);

返回:用指定字符隔开的新字符串;

//使用"-“连接字符(“java”,“is”,“cool”)
String str=String.join(”-",“java”,“is”,“cool”);
System.out.println(str);//输出:java-is-cool

String类的对象调用的方法

字符串的判断方法

(1)equals()方法

作用:比较两个字符串是否一致,区分大小写;

参数:需要比较的另外一个字符串;

返回:true表示两字符串内容一致,false表示两字符串内容不一致;

/* equals()方法,字符串比较规则

先比较地址是否一样,地址一样返回true
地址不一样比较字符串长度,长度不一样返回false
长度一样比较字符串中每一个字符是否一样,有一个不一样返回false,都一样返* 回true
*/
String str1=“Hello”;
String str2=“hello”;
String str3=new String(“Hello”);
System.out.println(str1.equals(str2));//false,equals()区分大小写
System.out.println(str1.equals(str3));//true
(2)equalsIgnoreCase()方法

作用:比较两个字符串是否一致,不区分大小写;

参数:需要比较的另外一个字符串;

返回:true表示两字符串内容一致,false表示两字符串内容不一致;

String str1=“HELLO”;
String str2=“hello”;
System.out.println(str1.equalsIgnoreCase(str2));

(3)contains()方法

作用:判断当前字符串中是否包含指定子字符串;

参数:子字符串;

返回:true表示字符串包含子字符串,false表示字符串不包含子字符串;

String str=“java is cool”;
System.out.println(str.contains(“java”));//true
System.out.println(str.contains(“are”));//false

(4)startsWith()方法

作用:判断当前字符串中是否以指定子字符串开头;

参数:子字符串;

返回:true表示字符串用子字符串开头,false表示字符串没有用子字符串开头;

String str=“java is cool”;
System.out.println(str.startsWith(“java”));//true
System.out.println(str.startsWith(“is”));//false

(5)endsWith()方法

作用:判断当前字符串中是否以指定子字符串结尾;

参数:子字符串;

返回:true表示字符串用子字符串结尾,false表示字符串没有用子字符串结尾;

String str=“java is cool”;
System.out.println(str.endsWith(“cool”));//true
System.out.println(str.endsWith(“is”));//false

(6)compareTo()方法

作用:比较两个字符串的大小;

比较规则:先比较对应的ASCII码的值(英文字符)或Unicode码的值(汉字),如果比较的字符一致,再比较两个字符串的长度"差";

参数:需要比较的另一个字符串;

返回:①正数:该字符串大于传入字符串;②零:该字符串等于传入字符串;③负数:该字符串小于传入字符串;

String str=“BBB”;
System.out.println(str.compareTo(“BBA”));//输出:1
System.out.println(str.compareTo(“BBC”));//输出:-1

字符串的基本方法

(1)length()方法

作用:计算字符串的长度;

参数: 无;

返回:字符串的长度(int型);

String str=“hello”;
System.out.println(str.length());//输出:5

(2)isEmpty()方法

作用:判断字符串是否为空(字符串长度为0);

参数:无;

返回:true字符串为空,false字符串不为空;

String str1="";
System.out.println(str1.isEmpty());//true
String str2="";
System.out.println(str2.isEmpty());//false

(3)charAt()方法

作用:按照下标位置获取对应字符;

参数:下标位置(下标在0——(字符串长度-1)的范围之内);

返回:该下标对应的字符串中的字符值;

String str=“AnAppleaDay”;
System.out.println(str.charAt(4));//输出:p

(4)indexOf()方法

作用:查找子字符串在字符串中首次出现的位置;

参数:①子字符串,从下标为0开始查找;②子字符串,开始下标,从开始下标位置开始查找;

返回:找到返回下标位置,未找到返回一个负数;

String str=“An Apple a Day”;
//从下标为0的位置开始查找
System.out.println(str.indexOf(“a”));//输出:9
//从第二个下标位置开始查找
System.out.println(str.indexOf(“A”,2));//输出:3

(5)lastIndexOf()方法

作用:查找子字符串在字符串中最后一次出现的位置;

参数:子字符串;

返回:找到返回下标位置,未找到返回一个负数;

String str=“An Apple a Day”;
//从下标为0的位置开始查找
System.out.println(str.indexOf(“A”));//输出:0
//返回最后一次出现的下标
System.out.println(str.lastIndexOf(“A”));//输出:3

字符串的转换方法

(1)toCharArray()方法

作用:将字符串转换为字符数组;

参数:无;

返回:该字符串对应的字符数组;

String str=“Hello”;
char[] ch=str.toCharArray();
System.out.println(Arrays.toString(ch));//输出:[H, e, l, l, o]

(2)toUpperCase()方法

作用:将字符串中的小写转化为大写;

参数:无;

返回:转化后的字符串;

String str=“Hello”;
System.out.println(str.toUpperCase());//输出:HELLO

(3)toUpperCase()方法

作用:将字符串中的大写转化为小写;

参数:无;

返回:转化后的字符串;

String str=“HELLo”;
System.out.println(str.toLowerCase());//输出:hello

字符串的其他方法

(1)split()方法

作用:按照指定的字符串对原字符串进行切割;

参数:指定字符串(如果包含特殊含义的字符要进行转义);

返回:字符串数组(包含切割后的子字符串);

String str=“AAA-BBB-CCC-DDD”;
String[] str1=str.split("-");
//使用"-"将str分割成字符数组
System.out.println(Arrays.toString(str1));//输出:[AAA, BBB, CCC, DDD]

(2)replace()方法

作用:替换全部子字符串;

参数:子字符串,替换字符串;

返回:替换后的新字符串;

String str=“An Apple A Day”;
//将str中的A全部替换成a
System.out.println(str.replace(“A”, “a”));//输出:an apple a Day

(3)replaceFirst()方法

作用:替换第一个子字符串;

参数:子字符串,替换字符串;

返回:替换后的新字符串;

String str=“An Apple A Day”;
//将str中的A全部替换成a
System.out.println(str.replaceFirst(“A”, “a”));//输出:an Apple A Day

(4)trim()方法

作用:去除字符串左右两边的空格;

参数:无;

返回:去除左右两边空格后的字符串;

String str=" An Apple A Day ";
//去除str左右两端的全部空格,不影响中间空格
System.out.println(str.trim());//输出:An Apple A Day

(5)intern()方法

作用:判断字符串是否在字符串常量池,在返回常量池中的字符串引用,不在将新字符串放入字符串常量池并返回其引用;

参数:无;

返回:字符串常量池中的字符串;

String str=“AAA”;
//AAA在字符串常量池中,直接返回AAA
System.out.println(“AAA”.intern());//输出:AAA
//BBB不在字符串常量池中,先在字符串常量池中写入BBB,再返回BBB
System.out.println(“BBB”.intern());//输出:BBB

以上就是对String中方法的介绍,仅代表个人观点,若有不对的地方望大佬们多多指正。
 

相关文章:

java字符串String类的常用方法

java字符串String类的常用方法 字符串的创建: (1)定义字符串直接赋值,在字符串池中开辟空间() String str1“Hello”;//在字符串池中写入字符串"hello" String str2“Hello”;//直接引用字符串池中的"Hello" System.out.println(s…...

自动化测试如何解决chrome自动更新问题

问题 调试好的自动化测试脚本,有时候总是在第一天或过几天就不好使了。产品并未进行功能逻辑,ui修改,一切还和调试自动化脚本的时候保持一致。运行自动化测试脚本时,控制台总是会在driver webdriver.Chrome()这一行报错。 问题…...

闲鱼卖货:新手容易踩坑的7个地方。赶紧看看有没有中招?

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 这是我以前的一个学生收到的第一个非法通知。他告诉我,他当时很害怕,…...

PowerShell 获取某目录下所有的文件、文件夹,同时对获取到的文件路径字符串进行替换处理

PowerShell 获取某目录下所有的文件、文件夹,同时对获取到的文件路径字符串进行替换处理 前言: 为了将Windows系统下的Java编译文件与linux服务器上的文件进行比较,故进行此文件路径的获取及路径处理。 在只有文件路径 而没有实际文件的情况下…...

JUC并发编程之线程锁(一)

目录 1.ReentrantLock(互斥锁) 2.ReentRantReaderWriterLock(互斥读写锁) 3.StampedLock(无障碍锁) 4.Condition(自定义锁) 5.LockSupport 问题引出: 由于传统的线程控制需要用到同步机制Sy…...

Android AlertDialog标题居中

网上很多做法都是使用setCustomTitle方法实现的,我偏不,因为我已经找到了标题的textView了: 在show了之后可以拿到标题(注意一定是show之后才能拿得到,create之后拿也是空的): TextView title…...

k8s界面化平台dashboard、kubesphere、Rancher对比

k8s集群管理dashboard有很多,比如kuboard、官方发dashboard、kubesphere、Rancher等等。 Dashboard、KubeSphere 和 Rancher 都是流行的 Kubernetes 管理和操作界面。它们都提供了图形化的用户界面,以简化对 Kubernetes 集群的管理和监控。每个工具都有其…...

【字符串左旋】

字符串左旋 1.题目要求 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 2.解法: 设计循环使其可以旋1次,然后让他执行n次是一个最简单的思路: 函数实现&#xf…...

Docker Dirtypipe(CVE-2022-0847)漏洞复现与分析容器逃逸

安装环境 ./metarget cnv install cve-2022-0847 --verbose 原理 同脏牛,通过写只读内存,对映射的内存做篡改 EXP docker run --rm -it -v $(pwd):/exp --cap-addCAP_DAC_READ_SEARCH ubuntu如果提示 Unknown capability to add: "CAP_CAP_DAC_RE…...

python接口自动化测试框架2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等

项目介绍 接口自动化测试项目2.0 软件架构 本框架主要是基于 Python unittest ddt HTMLTestRunner log excel mysql 企业微信通知 Jenkins 实现的接口自动化框架。 前言 公司突然要求你做自动化,但是没有代码基础不知道怎么做?或者有自动化…...

Vue.js2+Cesium1.103.0 九、淹没分析效果

Vue.js2Cesium1.103.0 九、淹没分析效果 Demo <template><divid"cesium-container"style"width: 100%; height: 100%;"><spanid"button"style"position: absolute; right: 50px; top: 50px; z-index: 999; font-size: 24px…...

SpringBoot案例-部门管理-新增

根据页面原型&#xff0c;明确需求 页面原型 需求 阅读接口文档 接口文档链接如下&#xff1a; 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 前端在输入要新增的部门名称后&#xff0c;会以JSON格式将数据传入至后端&#xf…...

微信小程序中背景图片如何占满整个屏幕,拉伸

不变形 1. 在页面的wxss文件中&#xff0c;设置背景图片的样式&#xff1a; page{background-image: url(图片路径);background-size: 100% 100%;background-repeat: no-repeat; }2. 在页面的json文件中&#xff0c;设置背景图片的样式&#xff1a; {"backgroundTextStyl…...

Java并发编程(四)线程同步 中 [AQS/Lock]

概述 Java中可以通过加锁&#xff0c;来保证多个线程访问某一个公共资源时&#xff0c;资源的访问安全性。Java提出了两种方式来加锁 第一种是我们上文提到的通过关键字synchronized加锁&#xff0c;synchronized底层托管给JVM执行的&#xff0c;并且在java 1.6 以后做了很多…...

PyTorch深度学习环境安装(Anaconda、CUDA、cuDNN)及关联PyCharm

1. 关系讲解 Tytorch&#xff1a;Python机器学习库&#xff0c;基于Torch&#xff0c;用于自然语言处理等应用程序 Anaconda&#xff1a;是默认的python包和环境管理工具&#xff0c;安装了anaconda&#xff0c;就默认安装了conda CUDA&#xff1a;CUDA是一种由显卡厂商NVIDI…...

Active Directory安全和风险状况管理

风险评估和管理 风险评估和管理是主动安全性和合规性管理不可或缺的一部分。 发现关键基础设施组件中的风险行为和配置对于阻止网络入侵和预防网络攻击至关重要。帐户泄露和配置错误漏洞是用于破坏网络的常见技术。当评估、监控和降低 Active Directory 基础架构的风险时&…...

学术论文GPT源码解读:从chatpaper、chatwithpaper到gpt_academic

前言 之前7月中旬&#xff0c;我曾在微博上说准备做“20个LLM大型项目的源码解读” 针对这个事&#xff0c;目前的最新情况是 已经做了的&#xff1a;LLaMA、Alpaca、ChatGLM-6B、deepspeedchat、transformer、langchain、langchain-chatglm知识库准备做的&#xff1a;chatpa…...

单链表(C语言版)

单链表&#xff1a;理解、实现与应用 单链表&#xff08;Singly Linked List&#xff09;是一种常见的数据结构&#xff0c;用于存储一系列具有相同类型的元素&#xff0c;并通过节点之间的链接建立起它们的关系。每个节点包含一个数据元素和一个指向下一个节点的指针。相比于…...

初学vue3时应该注意的几个问题

初学vue3时应该注意的几个问题 声明响应式 响应式数据的声明在vue2的时候很简单&#xff0c;在data中声明就行了。但现在可以使用多个方式。 reactive用于声明Object, Array, Map, Set; ref用于声明String, Number, Boolean 使用reactive来声明基础数据类型&#xff08;Str…...

基于Selenium技术方案的爬虫入门实践

通过爬虫技术抓取网页&#xff0c;动态加载的数据或包含 JavaScript 的页面&#xff0c;需要使用一些特殊的技术和工具。以下是一些常用的技术方法&#xff1a; 使用浏览器模拟器&#xff1a;使用像 Selenium、PhantomJS 或其他类似工具可以模拟一个完整的浏览器环境&#xff0…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor

1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...

Oracle实用参考(13)——Oracle for Linux物理DG环境搭建(2)

13.2. Oracle for Linux物理DG环境搭建 Oracle 数据库的DataGuard技术方案,业界也称为DG,其在数据库高可用、容灾及负载分离等方面,都有着非常广泛的应用,对此,前面相关章节已做过较为详尽的讲解,此处不再赘述。 需要说明的是, DG方案又分为物理DG和逻辑DG,两者的搭建…...

简单聊下阿里云DNS劫持事件

阿里云域名被DNS劫持事件 事件总结 根据ICANN规则&#xff0c;域名注册商&#xff08;Verisign&#xff09;认定aliyuncs.com域名下的部分网站被用于非法活动&#xff08;如传播恶意软件&#xff09;&#xff1b;顶级域名DNS服务器将aliyuncs.com域名的DNS记录统一解析到shado…...