【java·字符串】:有趣的String类

80 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情

1️⃣前言

大家好,我是翼同学,今天笔记的内容是:

  • String类

2️⃣内容

🌱概述

java字符串就是一系列Unicode字符序列。事实上,java没有内置的字符串类型,而是在标准类库中提供一个预定义类String类。一个字符串可以存储0个到任意个字符,这些字符由双引号" "括起来,组成字符串。并且注意到,String类属于引用类型。

🌳方法

String类中,也提供了很多实用的方法。

下面以字符串 "Helloworld" 为例,举几个常见的方法。

image.png


一、length

length方法用于放回字符串的长度。

需要注意的是,返回的长度指的是字符串中Unicode代码单元的数量。大多数常用的Unicode字符使用一个代码单元就可以表示,但是有些辅助字符则需要一对代码单元才能表示。

举个例子:

"Helloworld".length();  // 放回:10

当然,如果想得到实际长度,可以调用codePointCount方法。即str.codePointCount(0, str.length());

举个例子:

"Helloworld".codePointCount(0, "Helloworld".length())  // 返回: 10

二、substring

substring方法用于提取子串,可以接受的参数形式有两种。

  • 第一种方式是接受一个参数
  • 该参数用于决定从哪里开始截取字符串,
  • 此时,该方法截取从指定的索引开始,一直延伸到字符序列的末尾。

举个例子:

"Helloworld".substring(4)  // 返回: "oworld"
"Helloworld".substring(5)  // 返回: "world"
"Helloworld".substring(6)  // 返回: "orld"
  • 第二种方式是接受两个参数
  • 前一个参数表示起始点,后一个参数表示截取结束的位置
  • 注意,并不包含结束索引的字符

举个例子:

"HelloWorld".substring(0, 5);  // 返回: "Hello"
"HelloWorld".substring(1, 5);  // 返回: "ello"
"HelloWorld".substring(7, 9);  // 返回: "rl"

三、equals

java中,很少使用==符号来判断两个字符串是否相等。而是使用equals方法。

举个例子:

str.equals("Helloworld")
// 判断str是否与字符串"Helloworld"相等,结果返回true或false

注意,如果判断两个字符串是否相等时,想要忽略字母大小写,则可以使用equalsIgnoreCase方法。


四、charAt

调用str.charAt(n)用于返回指定索引n处的字符值。并且,数值n位于0~str.lenght()-1之间。

举个例子:

"Helloworld".charAt(0);  //  H
"Helloworld".charAt(9);  //  d

五、endsWith

调用str.endsWith(suffix)方法,用于检测字符串str是否以指定字符串suffix结尾。检测结果为真true或假false

举个例子:

"Helloworld".endsWith("ld")  // true
"Helloworld".endsWith("dl")  // false

六、startsWith

调用str.startsWith(prefix)方法,用于检测字符串str是否以指定字符串prefix开头。检测结果为真true或假false

举个例子:

"Helloworld".startsWith("He")  // true
"Helloworld".startsWith("eH")  // false

七、indexOf

该方法可以接受四种形式的参数,具体如下所示:

  • indexOf(int ch)

返回与ch匹配的第一个子串的开始位置,如果不存在,则返回 -1(注意,ch表示Unicode代码点)

  • indexOf(int ch, int fromIndex)

fromIndex索引开始计算,返回与ch匹配的第一个子串的开始位置。如果不存在,则返回 -1

  • indexOf(String str)

返回与字符串str匹配的第一个子串的开始位置。如果原字符串中不存在str,则返回 -1

  • indexOf(String str, int fromIndex)

fromIndex索引开始计算,返回与字符串str匹配的第一个子串的开始位置。如果原字符串中不存在str,则返回 -1


八、lastIndexOf

该方法可以接受四种形式的参数,具体如下所示:

  • lastIndexOf(int ch)

返回与ch匹配的最后一个子串的开始位置,如果不存在,则返回 -1(注意,ch表示Unicode代码点)

  • lastIndexOf(int ch, int fromIndex)

fromIndex索引开始计算,返回与ch匹配的最后一个子串的开始位置。如果不存在,则返回 -1

  • lastIndexOf(String str)

返回与字符串str匹配的最后一个子串的开始位置。如果原字符串中不存在str,则返回 -1

  • lastIndexOf(String str, int fromIndex)

fromIndex索引开始计算,返回与字符串str匹配的最后一个子串的开始位置。如果原字符串中不存在str,则返回 -1

🏔️拼接

在java中,可以使用加号+拼接两个字符串。

而且,当一个字符串与一个非字符串用加号拼接起来时,非字符串会被转换为字符串。这种特性常用在输出语句中。

int age = 19;
System.out.println("I'm " + age +" years old."); // 返回: "I'm 19 years old."

3️⃣写在最后

好了,今天的笔记就记到这里。