String类详解(java)

news2025/1/12 17:39:00

文章目录

    • 📖前言:
    • 🎀String类的构造方法两种创建形式
      • 🪅**隐式创建:**
      • 🪅**显式创建:**
    • 🎀String类底层结构:
    • 🎀String类常用方法:

📖前言:

本篇博客主要以介绍String类的常用方法及一些底层原理

🎀String类的构造方法两种创建形式

🪅隐式创建:

String s = "abc";

【🪧java中的所有字符串“ ”,都可以视为String类的实例
在这里插入图片描述
【解析】

先在栈中创建一个String类型的引用变量s,然后去字符串常量池中查找有没有"java"。
如果没有则在常量池中添加”java”, s引用变量指向常量池中的”abc”,
如果常量池中有,则直接指向改地址即可,不用重新创建.

🪅显式创建:

String s = new String("abc");

【🪧一概在堆中创建新对象,值存储在堆内存的对象中。】

🎀String类底层结构:

jdk8中字符串底层是:final修饰的char[ ]数组,故其对象值一旦定义就不能改变.
jdk9之后字符串底层开始变为byte[ ]字节数组了,原因是字节向内存申请的空间更小,有利于节省内存

在这里插入图片描述

🎀String类常用方法:

常用方法 方法内容介绍
构造方法方法内容介绍
public String(String str)📖初始化新创建的String对象,就是给其赋值为str
public String(byte[] bytes)📖将一个字节数组转化成字符串
public String(char[] value)📖将一个字符数组转化成字符串
替换功能方法内容介绍
String trim()📖 将字符串两边的空格去掉
String replace(String old,String new)📖replace(“旧元素”,“新元素”)将字符串中所有’'旧元素”替换成新元素。
String replaceAll(String regex, String replacement)📖replaceAll(“regex”,“新元素”)遵循正则表达式,将字符串中对应元素替换成新元素。
String replaceFirst(String regex, String replacement)📖replaceFrist(“regex”,“新元素”)-》:遵循正则表达式,将字符串中第一个对应元素替换成新元素。
判断功能方法内容介绍
boolean contains(String str)📖判断此字符串是否为另一个子串。
int compareTo(String anotherString)📖【按两字符串从前往后顺序拿出相同下标字符比较】若相等就重复之前操作,否则返回两字符的差
int compareToIgnoreCase(String str)📖【忽略字母大小写,满足 compareTo()比较原则】
boolean isEmpty()📖对象是否为""(空串),【注意:这里与null作区分,null是不存在,它连isEmpty()都没有。】
boolean matches(String regex)📖【正则表达式匹配】会告诉这个字符串是否匹配给定的规则
boolean equals(String str)📖判断两个字符串对象内容是否相等.
boolean equalsIgnoreCase(String str)📖判断两个字符串对象内容是否相等.(不区分大小写)
boolean startsWith(String prefix)📖是否以xx开头
boolean endsWith(String suffix)📖是否以xx结尾
获取功能方法内容介绍
int length()📖【获取长度】返回字符串长度
char charAt(int index)📖【获取字符串单个字符】找到i下标下的对应元素
int indexOf(String str)📖【获取字符下标】返回字符串第一次查找字符的下标
int lastIndexOf(int ch)📖【获取字符下标】返回字符串最后一次查找字符的下标
int indexOf(String str,int fromIndex)📖从下标fromIndex位置开始找,例如:indexof(‘’,indexof(‘’)+1)找第二个出现的字符
String substring(int start)📖【从下标satrt到最后】拷贝子串
String substring(int start,int end)📖【指定区间】拷贝子串
转换功能方法内容介绍
String concat(String str)📖【只支持String类型之间拼接!】字符串拼接符,相当于 +
byte[] getBytes()📖将字符串转化为字节数组,可以对数组进行操作,通过构造方法实现数组转换字符串
char[] toCharArray()📖将字符串转化为字符数组,可以对数组进行操作,通过构造方法实现数组转换字符串
static StringvalueOf(T chs)📖【将T类型转化成String字符串】
String toLowerCase()📖将字符串字母均转换为小写
String toUpperCase()📖将字符串字母均转换为大写
Stirng[] split(String regex);📖以正则表达式或指定字符分割

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

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

相关文章

神经网络漫谈(一):科普篇

神经网络漫谈(一):科普篇 发表时间: 2023年1月6日创作地点:湖北省武汉市作者:ixy_com&[Bill Kromydas]封面图片来源:Towards Data Science 1、背景 基本概念:神经网络,也称为人工神经网络 (ANN) 或…

Ubuntu22.04安装Docker以及Docker安装微信、企业微信、Docker常用命令

Ubuntu22.04安装Docker以及Docker安装微信、企业微信、Docker常用命令1 Docker引擎官网安装1.1 访问Docker官网下载社区版引擎并按照官网指导进行初步安装1.2 检查安装是否成功1.3 添加当前用户到docker组,不用每次都输入sudo。2 Docker安装微信2.1 拉取微信镜像2.2…

CSS基础(八)——CSS3新增样式

概述 前面7篇博客记录的所有 CSS 知识,都是 CSS2 版本的功能。 CSS3 在 CSS2 版本的基础上,新增了很多特性,例如边框圆角、动画效果。 在 CSS2 的时代,实现圆角必须要用图片才能实现,而 CSS3 只要一行样式就能实现…

SpringBoot+MySQL(官方案例)

在线文档项目结构 1.源码克隆:git clone https://github.com/spring-guides/gs-accessing-data-mysql.git 2.包含两个项目initial和complete,initial可以根据文档练习完善,complete是完整项目 3.功能描述:构建应用程序&#xff0c…

【jQuery】jQuery基础概念

一、JavaScript库1.仓库可以把很多东西放到这个仓库里面。找东西只需要到仓库里面查找到就可以了。2. JavaScript库即 library,是一个封装好的特定的集合(方法和函数)。从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预…

信息技术 安全技术 密钥管理

声明 本文是学习github5.com 网站的报告而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 前 言 GB/T 17901《信息技术 安全技术 密钥管理》分为六个部分: ——第1部分:框架; ——第2部分:使用对称技术的…

Odoo 16 企业版手册 - 库存管理之库位管理

库存位置 配置和管理Odoo 库存模块中可用位置的平台将帮助您定义仓库中存放产品的地方。在单个仓库中,您可以管理库存的多个位置。从库存模块的「设置」菜单中,您可以激活存储位置功能,如下所示,该功能将帮助您跟踪仓库中的产品位…

为什么使用消息中间件

为什么要使用消息中间件 如有一个电商交易的场景,用户下单之后调用库存系统减库存,然后调用物流系统进行发货,如果刚开始交易,库存,物流都是属于一个系统,那么他们之间就是接口调用。但是随着系统的发展&a…

FRP 内网穿透搭建(无域名)

一、为什么要内网穿透 FRP 可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。 使用场景:公网服务器监听某个端口等待内网服务器连接,内网服务器连接成功后,用户访问公网的某一个端口,访问的所…

Domino Web应用早就想到了环保

大家好,才是真的好。 前几周我们讲了Notes,上周讲了点管理,这周我们可以讲点开发。 我现在要讲的技术真的很古老,但现在却被越来越多的人提倡。 传统的Notes应用可以很简单地通过浏览器访问,以一个非常简单但又很使…

ESP32设备驱动-MCP9808数字温度传感器驱动

MCP9808数字温度传感器驱动 文章目录 MCP9808数字温度传感器驱动1、MCP9808介绍2、硬件准备3、软件准备4、驱动实现1、MCP9808介绍 MCP9808 数字温度传感器将 -20C 和 +100C 之间的温度转换为精度为 0.5C(最大值)的数字字。 MCP9808 带有用户可编程寄存器,可为温度传感应用…

联力L216装机心得

联力L216装机心得 2022年12月份装机笔记 参考视频 B站硬件茶谈装机:https://www.bilibili.com/video/BV1BG4y137mG/?spm_id_from333.337.search-card.all.click&vd_source8f7bdd23b317e50e9b9803f44de6a213 联力L216机箱介绍:https://www.bilibili.com/vid…

ArcGIS基础实验操作100例--实验57由点坐标生成面要素

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验57 由点坐标生成面要素 目录 一、实验背景 二、实验数据 三、实验步骤 (…

【Qt】自动查找Qt应用程序缺少的依赖库

【Qt】自动查找Qt应用程序缺少的依赖库1、背景2、实例3、验证1、背景 操作系统:windows10专业版,如下图: Qt版本:qt-opensource-windows-x86-msvc2013_64-5.7.1.exe 使用Qt安装后的qtcreator5.7.1开发Qt应用程序。 将编译生成的…

基于Vue和SpringBoot的超市账单管理系统的设计和实现

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

【练习】Day03(未完成版)

努力经营当下,直至未来明朗! 文章目录一、选择二、编程1. 括号生成2. 颜色分类答案1. 选择2. 编程提普通小孩也要热爱生活! 一、选择 下列Java代码中的变量a、b、c分别在内存的____存储区存放。 class A {private String a “aa”;public…

SpringBoot+JPA(官方案例)

在线文档项目结构 1.源码克隆:git clone https://github.com/spring-guides/gs-accessing-data-jpa.git 2.包含两个项目initial和complete,initial可以根据文档练习完善,complete是完整项目 3.功能描述:构建应用程序,使…

相机标定中的战斗机--张氏标定法

张正友标定法--相机标定中的灭霸!在上学期接触过calibration以后,下定决心要学一下张正友标定法的,然后没来的及学,寒假弥补一下。参考博客:https://zhuanlan.zhihu.com/p/136827980编辑切换为居中添加图片注释&#x…

车牌识别数据收集之自动化筛选工具

综述 最近在进行车牌识别的开发,在数据收集阶段除了那些特定的数据集(开源数据集),还需要自己收集一些数据,这些数据主要来自如爬虫、行车记录视频、非特定数据集,而在这些数据集中,只有少量的…

PCB结构和谐振(二)

PCB结构和谐振(一)实验研究在此章节中,我们通过不同的测试研究了旋转角度/复杂层叠/走线pitch和layout设计等,所有的测试都是基于Intel Delta L 4.0规范。旋转角度单层结构是一个简单的层叠,所以首先通过测试单层结构研…