初识String类和String类的拓展

        前言:以下是Java中String类的知识点与一些常见问题和注意事项,如有讲解不妥,请见谅!


目录

1.String类的创建及常见API

(1)String类的四种创建方式:

补充:字符串转化成字符数组 / 字节数组

(2)String类的常见API

2.字符串中的注意事项

 3.StringBuilder  和  StringBuffer  和  StringJoiner

StringBuilder

StringBuffer

 StringJoiner


1.String类的创建及常见API

        先大致了解一下有哪些知识:(如图)

(1)String类的四种创建方式:

1.直接创建:

2.通过对象创建:

3.将字符数组转变成字符串

4.将字节数组转变成字符串

        以上是String类的创建的四种方式,当然有人会问字符数组 / 字节数组可以转化成字符串,那么能不能把字符串转化成字符数组 / 字节数组呢?(当然可以!)

补充:字符串转化成字符数组 / 字节数组

1.字符串转化成字符数组:

2.字符串转化成字节数组:

注:字符串和字节数组的相互转化是ASCII码和字符的相互转换!

(2)String类的常见API

        可以大致看一下常见的API:(如图)

由于如果展开讲解篇幅会过长,详情可以浏览------------------->java中String类常用API-CSDN博客

2.字符串中的注意事项

        大致了解一些有什么:

(1)字符串在内存中储存的注意事项:

        在上面我们已经了解了字符串的创建有四种方式,其中有直接创建(第一种)和通过对象创建(第二种),那么它们有什么区别呢?

        ----直接创建:它是创建一个字符串常量并储存在字符串常量池中的(在堆区)(如图)

        ----通过对象创建的字符串:它是创建了一个字符串对象并存储在了堆区中(如图)

根据上面的两幅图片我们就可以知道直接创建(第一种)和通过对象创建(第二种)的区别了!

 3.StringBuilder  和  StringBuffer  和  StringJoiner

        先来看StringBuilder, 大致了解一些有什么:

StringBuilder

        (1)StringBuilder的介绍:

StringBuilder就是一个存放字符串的容器,你可以把字符串存储在这个容器中,然后通过API 或 其他方式对其中的字符串进行操作。

        (2)StringBuilder的常见API(以下的对象都为sb是因为官方也这么命名

1.append()  ----   作用:向这个容器中添加内容(加在最后)

注:如图可以看到我们可以添加所有基本类型,其实是append()将它们都进行了转化。

2.length()  ----  作用:求容器中的字符串长度

注:别忘记空格也算一个字符哦!

3.reverse()  ----  作用:将容器内的字符串反转

4.toString()  ----  作用:将容器里面的内容转变为字符串格式

从上面几个案例的结果我们是看不出来有什么区别的,但是注意的是,我们创造的对象的类型都是StringBuilder类型的,但是我们要把他变成字符串的格式才能更方便之后的使用。

StringBuffer

        再来看StringBuffer, 大致了解一些有什么:

        (1)StringBuffer的介绍:

StringBuffer就是一个存放字符串的容器,你可以把字符串存储在这个容器中,然后通过API 或 其他方式对其中的字符串进行操作。(其实和StringBuilder一样

它的用法和StringBuilder大差不差,所以也就不在再次解释了,主要讲解一下replace()和delete()

(1)replace()  ----  作业:更换对应的索引范围的内容

注:start索引是包含的,但是end索引是不包含的,及到end - 1的索引位置。

(2)delete()  ----作用:删除对应索引范围的内容

注:start索引是包含的,但是end索引是不包含的,及到end - 1的索引位置。

        当然StringBuilder 和 StringBuffer还有许多其他的常用API ,这里也就不举例了,有兴趣的朋友可以自己上网了解!

        那么有人会问了StringBuilder 和 StringBuffer这么相似,那有什么区别呢?区别还是有的,但是如今还不好解释(等你学习的更多了之后就会知道了,但是这里还是列举一下它们的不同)

        不同:StringBuffer几乎所有的方法都使用synchronized实现了同步,线程比较安全,在多线程系统中可以保证数据同步,但是效率比较低,而StringBuilder 没有实现同步,线程不安全,在多线程系统中不能使用 StringBuilder,但是效率比较高。
 

 StringJoiner

                最后来看StringJoiner, 大致了解一些有什么:

StringJoiner的作用:快速的连接添加到容器里面的内容。

        

        直接看案例吧!

注:在创建对象sj的时候括号里面第一个参数是连接符,第二个参数是开头字符,第三个参数是结尾字符(当然开头和结尾可以省略,只填连接符)

以上就是String有关的一些知识点,希望对你有帮助!!!


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

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

相关文章

038 什么是面向对象

面向过程&面向对象 什么是面向对象 现实世界中的事物、类、对象之间的关系 在我们想通过计算机解决一个具体问题的时候,我们可以研究与问题有关事物的共性,比如我在观察了大量的杯子后得出一些结论:杯子都应该有材质、颜色、尺寸、形状这…

Docker 容器网络:C++ 客户端 — 服务器应用程序。

一、说明 在下面的文章中, 将向您概述 docker 容器之间的通信。docker 通信的验证将通过运行 C 客户端-服务器应用程序和标准“ping”命令来执行。将构建并运行两个单独的 Docker 映像。 由于我会关注 docker 网络方面,因此不会提供 C 详细信息。…

LeetCode-第15题-三叔之和

1.题目描述 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组…

1899_野火FreeRTOS教程阅读笔记_任务创建

1899_野火FreeRTOS教程阅读笔记_任务创建 全部学习汇总: g_FreeRTOS: FreeRTOS学习笔记 (gitee.com) 关于这部分,从一般前后台程序到RTOS的任务描述了很多。但是我觉得这本书的这部分描述没有描述到关键的信息点。其实,RTOS存在的一个主要的目…

MySQL篇----第八篇

系列文章目录 文章目录 系列文章目录前言一、存储过程优化思路二、触发器(一段能自动执行的程序)三、数据库并发策略四、MySQL 中有哪几种锁?五、MySQL 中有哪些不同的表格?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳…

创建自己的系统创富法则,做个轻松赚钱的甩手掌柜

一、教程描述 本套系统创富教程,大小744.80M,共有28个文件。 二、教程目录 01.走遍全球四十多个国家,我才发现赚钱的本质如此雷同.mp4 02.靠工资技术赚钱太慢,想赚到自己的第一个一百万的方法是?.mp4 03.不服暴发…

CSP-202112-2-序列查询新解

CSP-202112-2-序列查询新解 【70分思路】 【暴力枚举】按照题目思路遍历一遍f(x)和g(x)&#xff0c;计算error(A)&#xff0c;时间复杂度为O(N)&#xff0c;时间超限。 #include <iostream> using namespace std; int main() {long long n, N, sum 0;cin >> n …

【c++基础】骑士的金币(coin)(NOIP2015)

说明 国王将金币作为奖励&#xff0c;发放给忠诚的骑士。第一天&#xff0c;骑士收到一枚金币&#xff1b;之后两天&#xff08;第二天和第三天&#xff09;里&#xff0c;每天收到两枚金币&#xff1b;之后三天&#xff08;第四、五、六天&#xff09;里&#xff0c;每天收到…

微软 CMU - Tag-LLM:将通用大语言模型改用于专业领域

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 论文地址&#xff1a;https://arxiv.org/abs/2402.05140 Github 地址&#xff1a;https://github.com/sjunhongshen/Tag-LLM 大语言模型&#xff08…

ChatGPT高效提问—prompt常见用法

ChatGPT高效提问—prompt常见用法 1.1 角色扮演 ​ prompt最为常见的用法是ChatGPT进行角色扮演。通常我们在和ChatGPT对话时&#xff0c;最常用的方式是一问一答&#xff0c;把ChatGPT当作一个单纯的“陪聊者”。而当我们通过prompt为ChatGPT赋予角色属性后&#xff0c;即使…

SpringIOC之support模块PropertySourcesPlaceholderConfigurer

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

LeetCode Python - 6.Z字形变换

文章目录 题目答案运行结果 题目 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输…

STM32 FSMC (Flexible static memory controller) 灵活静态内存控制器介绍

文章目录 1. 介绍FSMC2. FSMC特点3. Block示意图4. AHB接口4.1 Supported memories and transactionsGeneral transaction rulesConfiguration registers 5. 外部设备地址映射5.1 NOR/PSRAM地址映射将NOR Flash/PSRAM的支持进行封装 5.2 NAND/PC Card地址映射 1. 介绍FSMC 说到…

【正在更新】从零开始认识语音识别:DNN-HMM混合系统语音识别(ASR)模型原理

摘要 | Abstract TO-BE-FILLED 前言 | Introduction 近期想深入了解HMM隐马尔可夫模型和DNN-HMM混合模型&#xff0c;但是尽管网络上有许多关于DNN-HMM的介绍&#xff0c;如李宏毅教授的《深度学习人类语言处理》[1]&#xff0c;一些博主的语音识别系列文章[2]&#xff0c;斯坦…

4核8g服务器能支持多少人访问?- 腾讯云

腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线&#xff1f;通用型-4核8G-180G-2000G&#xff0c;2000GB月流量&#xff0c;系统盘为180GB SSD盘&#xff0c;12M公网带宽&#xff0c;下载速度峰值为1536KB/s&#xff0c;即1.5M/秒&#xff0c;假设网站内页平均大小为60KB…

机器学习系列——(十八)K-means聚类

引言 在众多机器学习技术中&#xff0c;K-means聚类以其简洁高效著称&#xff0c;成为了数据分析师和算法工程师手中的利器。无论是在市场细分、社交网络分析&#xff0c;还是图像处理等领域&#xff0c;K-means都扮演着至关重要的角色。本文旨在深入解析K-means聚类的原理、实…

Sodinokibi(REvil)黑客组织发起大规模供应链攻击

前言 Sodinokibi勒索病毒黑客组织获取了远程管理解决方案提供商Kaseya基础设施的访问权限&#xff0c;并使用VSA软件的恶意升级执行程序在企业网络上部署Sodinokibi(REvil)勒索病毒&#xff0c;据报道该事件已经影响了全球数千家公司&#xff0c;相关受害者发布的信息&#xf…

WWW 2024 | 时间序列(Time Series)和时空数据(Spatial-Temporal)论文总结

WWW 2024已经放榜&#xff0c;本次会议共提交了2008篇文章&#xff0c;research tracks共录用约400多篇论文&#xff0c;录用率为20.2%。本次会议将于2024年5月13日-17日在新加坡举办。 本文总结了WWW 2024有关时间序列&#xff08;Time Series&#xff09;和时空数据&#xf…

编译环境搭建及基础实验

1.VS code安装 Linux 版本安装 把资料盘里的安装包.deb拷贝到Ubuntu中&#xff0c; 使用如下命令安装&#xff1a; 软件图标都在目录/usr/share/applications 中&#xff0c;如图路径 复制到桌面中 Visual Studio Code 插件的安装 我们需要按照的插件有下面几个&#xff1a;…

【后端高频面试题--Mybatis篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;后端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 后端高频面试题--Mybatis篇 什么是Mybatis&#xff1f;Mybatis的优缺点&#xff1f;Mybatis的特点…