Java从入门到放弃 · String类详解(下)

257 阅读4分钟

“这是我参与8月更文挑战的第6天,活动详情查看: 8月更文挑战

这一期我们来讲String类的方法,查阅API我们发现,String类的方法有几十个,我们都需要记下来吗?当然不,都记下来我们脑袋都要炸了。我们只需要记住几个常用的方法,剩下的等到使用的时候查阅API文档就行了。下面我们就来学习一下String类中的一些经常使用的方法。

比较方法。

我们知道在Java中“==”比较的是两个对象的地址值,那如果我们想比较字符串的内容怎么办呢?

我们可以使用两个方法,分别是equals方法和compareTo方法

equals

public boolean equals(Object anObject)

将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。 

参数:
anObject - 与此 String 进行比较的对象。 
返回:
如果给定对象表示的 String 与此 String 相等,则返回 true;否则返回 false
compareTo

public int compareTo(String anotherString)

按字典顺序比较两个字符串。
如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。
如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。
如果这两个字符串相等,则结果为 0;
compareTo 只在方法 equals(Object) 返回 true 时才返回 0。 

参数:
anotherString - 要比较的 String。 
返回:
如果参数字符串等于此字符串,则返回值 0;
如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值;
如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。

这两个方法都可用来比较字符串是否相等,需要区别的就是两个方法的返回值,equals返回值是布尔类型,compareTo返回的是int类型。

字符串的获取相关的方法

获得字符串指定的下标的字符

charAt

public char charAt(int index)

返回指定索引处的 char 值。索引范围为从 0length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。 

参数:
index - char 值的索引。 
返回:
此字符串指定索引处的 char 值。第一个 char 值位于索引 0 处。 
抛出: 
IndexOutOfBoundsException - 如果 index 参数为负或小于此字符串的长度。

获取字符串的长度

length

public int length()

返回此字符串的长度。

返回:
此对象表示的字符序列的长度。

拼接字符串

我们知道可以使用+号来给字符串加上更多的字符,而Java也提供了专门拼接字符串的方法。

concat
public String concat(String str)将指定字符串连接到此字符串的结尾。 
参数:
str - 连接到此 String 结尾的 String。 
返回:
一个字符串,它表示在此对象字符后连接字符串参数字符而成的字符。

该方法返回的是一个字符串,在调用该方法的字符串后面加上传入的字符串参数。

获取指定字符在字符串中的索引

indexOf
public int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引。

参数:
ch - 一个字符。 
返回:
在此对象表示的字符序列中第一次出现该字符的索引;如果未出现该字符,则返回 -1

---

indexOf
public int indexOf(int ch,  int fromIndex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 

参数:
ch - 一个字符。
fromIndex - 开始搜索的索引。 
返回:
在此对象表示的字符序列中第一次出现的大于或等于 fromIndex 的字符的索引;如果未出现该字符,则返回 -1

这个方法就是indexOf,indexOf可以是一个参数也可以是两个参数,根据具体需要要选择。需要注意的是,该方法返回的是第一次找到该字符的索引,没有找到返回-1。 对于其中的参数,可以传入的是一个字符串,如果字符串存在,返回的是字符串第一个字符的索引,不存在返回-1.

以上就是字符串比较和获取相关的一些方法,如有错误,欢迎掘友们指正。下期,我们来学习String类的更多的一些方法。