获取字符串信息

每个字符串都是一个对象,通过这个对象调用相应方法就能够获取字符串的有效信息,如获取某字符串的长度、某个索引位置的字符等。本节将讲解几种获取字符串的相关信息的方法。

获取字符串长度

使用 String 类的 length() 方法来获取声明的字符串对象的长度。语法如下:

str.length();

其中,str 为字符串对象。获取字符串长度,代码如下:

String str = "We are students";
int size = str.length();

上段代码是将字符串 str 的长度赋值给 int 型变量 size,此时变量 size 的值为 15,这表示 length() 方法返回的是字符串的长度(包括字符串中的空格)。

查找字符串

String 类提供了两种查找字符串的方法,即 indexOf() 与 lastIndexOf() 方法。这两种方法都允许在字符串中搜索指定条件的字符或字符串。indexOf() 方法返回的是搜索的字符或字符串首次出现的位置,lastIndexOf() 方法返回的是搜索的字符或字符串最后一次出现的位置。

indexOf(String s)

该方法用于返回参数字符串 s 在指定字符串中首次出现的索引位置。当调用 String 类的 indexOf() 方法时,会从当前字符串的开始位置处搜索 s 的位置。indexOf() 方法如果没有检索到字符串 s,则返回 -1。语法如下:

str.indexOf(substr)
  • str:任意字符串对象。

  • substr:要搜索的字符串。

查找字符 a 在字符串 str 中的索引位置,代码如下:

String str = "We are students";
int size = str.indexOf("a");    // 变量 size 的值是 3

要理解字符串的索引位置,则需要对字符串的下标有所了解。在 Java 语言中,String 对象是用数组表示的。字符串的下标是 0~length()-1。因此,字符串 “We are students” 的下标如图10.5所示。

lastIndexOf(String str)

该方法用于返回指定字符串最后一次出现的索引位置。当调用 String 类的 lastIndexOf() 方法时,会从当前字符串的开始位置处检索参数字符串 str,并将最后一次出现 str 的索引位置进行返回。lastIndexOf() 方法如果没有检索到字符串 str,则返回 -1。语法如下:

str.lastIndexOf(substr)
  • str:任意字符串对象。

  • substr:要搜索的字符串。

如果 lastIndexOf() 方法中的参数是空字符串""(注意没有空格),则该方法返回的结果与调用 length() 方法的返回结果相同。

【例10.3】用两种方式判断字符串的长度(实例位置:资源包\TM\sl\10\3)

在项目中创建 Text 类,在主方法中创建 String 对象,先使用 lastIndexOf() 方法查看字符串 str 中空字符串的位置,再输出这个字符串的长度,然后查看这两个结果是否相同。实例代码如下:

public class Text { // 创建类
	public static void main(String args[]) { // 主方法
		String str = "We are students"; // 定义字符串str
		// 将空字符串在str中的索引位置赋值给变量size
		int size = str.lastIndexOf("");
		// 将变量size输出
		System.out.println("空字符在字符串str中的索引位置是:" + size);
		// 将字符串str的长度输出
		System.out.println("字符串str的长度是:" + str.length());
	}
}

运行结果如图10.6所示。

image 2024 03 01 14 01 18 777
Figure 1. 图10.5 字符串str的下标
image 2024 03 01 14 01 41 280
Figure 2. 图10.6 例10.3的运行结果

获取指定索引位置的字符

使用 charAt() 方法可将指定索引处的字符进行返回。语法如下:

str.charAt(int index)
  • str:任意字符串。

  • index:整型值,用于指定要返回字符的下标。

【例10.4】查看指定索引位置上的字符(实例位置:资源包\TM\sl\10\4)

在项目中创建 Ref 类,在主方法中创建 String 对象,使用 charAt() 方法查看字符串 str 中索引位置是 6 的字符。实例代码如下:

public class Ref { // 创建类
	public static void main(String args[]) { // 主方法
		String str = "hello world"; // 定义字符串str
		char mychar = str.charAt(6); // 将字符串str中索引位置是6的字符返回
		System.out.println("字符串str中索引位置是6的字符为:" + mychar); // 输出信息
	}
}

运行结果如图10.7所示。

编程训练(答案位置:资源包\TM\sl\10\编程训练)

【训练5】判断某段文字是否只出现一次 设计一个方法,判断某段文字是否在指定字符串中只出现一次。

【训练6】获得最中间的字符 如何获得任意字符串里最中间的字符(如果字符个数为偶数,则取中间两个字符中索引值较小的字符)?

image 2024 03 01 14 03 48 920
Figure 3. 图10.7 例10.4的运行结果