首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从今天开始作死

听说你关心我?

好的,跑题了,这不是今日份主题,回到主题线上,写作业......

从一道题开始进行作死:

听说用嵌套的if-else语句,还有那些运算符的使用

(完全不明白 )

不,

好的 收到 明白 安排

......

你知道的,有些东西勉强不来

......

最渺小的我,没有大大的梦

.......

今天来复习复习Java中String类的使用。

Java字符串String

从表面上看,字符串就是双引号之间的数据,例如"HelloWorld",在Java中,字符串其实就是一个String类的对象,可以这样来定义一个字符串:

Stringstr1="HelloWorld";//第一种方法

Stringstr2=newString("HelloWorld");//第二种方法

这两种都可以创建字符串。

字符串可以通过“+”来连接,基本数据类型与字符串进行“+”操作一般也会自动转换为字符串,比如:

inta=10;

Stringstr1="Hello"+a;//此时str就变成了Hello10

Stringstr2="Hello"+"World";//此时str2就编程了HelloWorld

String字符串与数组有一个相同点,就是它们被初始化之后,长度是不变的,并且字符串内容也不变。如果要改变它的长度或者值,就会产生一个新的字符串,如下所示:

Stringstr="Hello";//此时str被初始化为“Hello”

str+="World!";//此时str已经变成了“HelloWorld”

这个赋值有点像简单的接龙,在str后直接加了个“World”字符串,形成新的字符串“HelloWorld”。其运行原理是这样的:JVM首先在内存中存放了“Hello”字符串,并把str引用指向了“Hello”字符串的内存存放地址。此时要追加新的字符串是不可能的,因为字符串被初始化后,长度是固定的,无法改变,只有放弃原来的空间,然后JVM在内存中存放了“HelloWorld”字符串,并把str引用指向到"HelloWorld"字符串的内存存放地址,但其实在内存空间中,"Hello"这个字符串还存在,只是str不指向它了,而指向了"HelloWorld"这个新的字符串。

实际上,String类是java.lang包下的一个类,因为String特别常用,所以Java提供了一个简化的语法:

Stringstr1="Hello";//简化语法

Stringstr2=newString("Hello");标准语法

使用简化语法的另一个原因是,按照标准的面向对象语法,在内存使用上存在比较大的浪费,例如Stringstr=newString("Hello");实际上创建了两个String对象,一个是str引用,一个是“Hello”对象。String类在内存中的存放地址

String类的一些了解

翻看String类的源码得知,String类是一个不可继承的类,具有final关键字修饰。

String类继承自Java中所有类的父类Object,并重写了Object中的equals(比较)方法。

String类还有format方法,可以对字符串进行格式化输出。

String类还有直接对字符串直接的正则方法:matches方法。

字符串(String)的一些方法

翻看Java文档,可以看出String类为我们封装了很多的对字符串操作的方法:

intlength()

返回此字符串的长度

charcharAt(intindex)

根据下标获取字符串的某个字符(可以获取某个特定位置的字符)

Stringconcat(Stringstr)

将指定字符串连接到此字符串的结尾(相当于“+”运算符)

booleancontains(CharSequences)

判断此char值序列s是否在字符串中,存在返回true(可以判断此字符串是否存在某个子串)

booleanendWith(Stringsuffix)

判断此字符串是否以指定的后缀结束(比如在上传图片时,判断上传文件的文件扩展名是否为.jpg)

booleanstartWith(Stringperfix)

判断此字符串是否以指定的前缀开始

booeanequals(ObjectanObject)

将此字符串与指定的字符串进行比较(这个方法是重写了String的父类Object的方法,用来判断两个字符串的值是否相同)

booleanequalsIgnoreCase(StringanotherString)

将此字符串和另一个字符串进行比较,不考虑大小写

Stringformat(Stringformat,Object...args)

对字符串进行格式化吃书输出

intindexOf(intch)

返回指定字符在此字符串中的第一次出现处的索引,不存在指定字符,返回-1

Stringintern()

返回字符串对象的规范化表示形式

booleanisEmpty()

当且仅当length()为0时返回true

intlastIndexOf(Stringstr)

返回指定字符串在此字符串中最后一次出现的索引

booleanmatches(Stringregex)

判断此字符串是否匹配给定的正则表达式

Stringreplace(CharSequencetarget,CharSequencereplacement)

替换字符串

String[]split(Stringregex)

根据给定的正则表达式来拆分此字符串

Stringsubstring(intbeginIndex,intendIndex)

字符串截取,从beginIndex索引截取到endIndex处

char[]toCharArray()

把此字符串转换成一个新的char数组

StringtoLowerCase()

把此字符串中的所有字符都转换为小写

StringtoUpperCase()

把此字符串中的所有字符都转换为大写

StringtoString()

用字符串的形式来返回此对象本身(它已经是一个字符串)

StringvalueOf(inti)

返回int参数的字符串形式(也就是所谓的类型转换,相应的还有其他基础数据类型的,比如boolean,double,long,char)

Thanks

https://www.cnblogs.com/guoliangxie/p/7238907.html

本文来自义无反顾xk的CSDN博客,全文地址请点击:https://blog.csdn.net/xkfanhua/article/details/80544570?utm_source=copy

-end-

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180922G0R1EX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券