java 零基础入门 -String
哈喽,各位小伙伴们好,我是喵手。
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流 学 习,互相学习,才能成长的更快,对吧。
我是一名 java 开发,所以日常接触到最多的就是 java 啦,所以我趁自己有空,就来好好回忆,把自己学到的会的,进行输出,不图什么有回报,只想能帮助到更多的小伙伴,就好。
小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对喵手我创作道路上最好的鼓励与支持!
一、概述
论前几期啊,我们是分别讲了Object类
、Date类
、FormDate类
、Calendar类
、System类
及StringBuilder类
,不知道大家掌握的如何,如果没有及时巩固的同学,可以看我这里,我给大家罗列了下,快速学习通道,只希望能帮助到大家更好的学习与成长,这就是我写作的初衷。
二、前言
近期有个小伙伴在看我的文章,说我在讲完基本类型,只是顺带提了一嘴 String,然后说他的老师在课上对这 String 讲了足足一节课,好家伙,我觉得啊,这勾起了我的回忆,当初我看 String 的源码及知识点时,也是看了很久,这怪我,疏忽大意了啊。
既然被这位小伙伴吐槽,那我就为大家在这期,简单跟大家来聊聊它吧。
三、本期教学目标
掌握字符串概念
掌握字符串子串提取
掌握字符串拼接
掌握不可变字符串概念
掌握如何判断字符串是否相等
掌握常用的 StringApi
四、正文
1️⃣概念
说起 String 字符串,我们都知道它是 Unicode 字符序列。比如:“hello”,它就是由 5 个 Unicode 字符组成,h e l l o 就是组成“hello”的 Unicode 的 5 个字符。在 java 中,我们都知道没有内置的字符串类型,而是在标准的 java 类库中提供了一个预定义类---String。每个用双引号括起来的字符串都是 String 类的一个实例。
具体如下:
2️⃣子串
说到字符串,那自然我们会用到其本身提供的 substring 方法,该方法可以对字符串进行切割,从一个较大的字符串提取出一个子串。例如:
你们来解答一下,该 subStr 输出应该是什么?其实它就等于创建了一个新的字符串 subStr = "hel"。
解释一下:然后对于 substring 方法,对于它的第二个参数,其表示是不想复制的第一个位置。这里要复制的位置为 0,1,2(从 0 到 2,包括 2),在 substring 中从 0 开始计算,直到 3 位置,但是不包含 3,其中 substring(0,3) == >[0,3),表示这个范围。
3️⃣拼接
除了字符串可以切割,它也可以拼接,虽然你们可能会说,直接用“+”不就拼接了两个字符串嘛,是没问题。比如:
给大家看下运行结果,是不是将 a b 字符串给拼接起来了?
但是我这里想说的是,这里想介绍一下 join()方法。其方法是可以将多个字符串给拼接起来,并且用一个界定符分隔开,还是很便利的。
具体演示代码如下:
具体演示代码如下:
4️⃣不可变字符串
我为什么说是不可变字符串呢?那是由于 String 类没有提供修改字符串的方法,比如对字符串进行某个字符修改,这没有提供,所以在 java 中,String 类是不可变的,因为对于相同的字符串而言,它们其实是指向存储池中的同一个位置的。
5️⃣检测字符串是否相等
对于这个问题,项目中实在是太常见了,这不就用到了 equals()方法,使用模板如下:
如果对于字符串 a 与字符串 b 相等,则返回 true,否则返回 false。需要注意的是 a 与 b 可以是字符串变量,也可以是字符串字面量。具体演示如下;
点击并拖拽以移动运行结果如下:
但是想要检查两个字符串不区分大小的情况下是否相等,那就可以用这个 equalsIgnoreCase()。举例如下:
大家请看 如下运行截图:是不是也是返回了 true。
还有一点需要大家注意的,也是经常会犯迷糊的。一定不要用 == 运算符判断两个两字符串是否相等,这个运算符只能够确定两个字符串是否存放在同一个位置上,当然,如果字符串存放在同一个位置上,这两字符串必然相等。但是完全有可能将内容相同的多个字符串存放在不同的位置上。
比如如下演示:
你们可以看下运行结果。 是不是发现了 b 字符串的值是[ hel ]啊,对字符串 a 进行 substring 方法截取后的字符串内容同样也是[ hel ],但是二者竟然不相等,为什么?
其实这不就证实了我上面提到的,内容相同的字符串存储放置完全也有可能会不同,所以用 == 运算符进行字符串校验,判断结果自然就返回了 false 啦。
是不是很生气,这个你们可以课后去研究研究,究竟背后的原理是啥?
6️⃣String Api
对于 String 类,它包含了 50 多个方法。如下我来分享点 String 常用的 Api。
boolean blank(); //如果字符串为空或者由空格组成,返回 true,否则返回 false。
int compareTo(String str); //按字典顺序,如果字符串位于 str 之前,返回一个负数,如果 字符串位于 str 之后,返回一个正数;如果两字符串相等,返回 0;
boolean empth() //判断字符串是否为空。为空返回 true,否则返回 false
...
... ...
好啦,以上就是本期内容的全部教学内容啦,如果对文中的任何知识点有疑问,欢迎评论区评论留言呀,我看见都会一一解答的。
五、文末
教学是结束了,但是有些话不知我但讲不当讲,啊哈哈, 可我还是想说给你们听听。如下是我很喜欢的一句话,我打算送给你们,希望我们都能变得更好更优秀。
学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!
wished for you successed !!!
-------------------------------------------
⭐️若喜欢我,就请关注我叭。
⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。
-------------------------------------------
版权声明: 本文为 InfoQ 作者【喵手】的原创文章。
原文链接:【http://xie.infoq.cn/article/c5175e591aa25e43c2eeeb5ef】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论