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


获取指定索引位置的字符
使用 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】获得最中间的字符 如何获得任意字符串里最中间的字符(如果字符个数为偶数,则取中间两个字符中索引值较小的字符)?
