字符串作为一个String对象,可以通过String类提供的方法来获取字符串的长度、指定索引位置或范围的字符或子串信息。
在字符串中,字符串长度是字符串包含的字符个数,索引是字符串序列中每个字符的位置序号,字符的位置序号从0开始,依次是1、2、3、……。
例如:
String szTemp = “Hello World”
szTemp的字符串长度为11,空格也算一个字符。字符‘H’的索引是0,字符‘e’的索引是1、字符‘l’的索引是2、……、字符‘d’的索引是10。因为字符串的索引是从0开始,因此szTemp的最大索引值是字符串的长度减1。
获取字符串的长度
使用String类的length()方法可以获取字符串的长度,语法如下:
str.length();
其中str是已创建的String对象。
案例1:创建字符串对象,输出字符串对象的长度。
在PbaseUnit11项目unit包下创建StringLengthSample类。代码如下:
/**
* @Title: StringLengthSample.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
/**
* @ClassName: StringLengthSample
* @Description: 字符串(获取字符串的长度或字符信息)案例1
* @author 编程训练营
* @date
*
*/
public class StringLengthSample {
/**
* @Title: main
* @Description:Java程序入口main方法
* @param @param args 参数
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
// 创建String对象
String szWelcome = "欢迎加入编程小组";
// 创建String对象
String szTemp = "Hello World";
// 输出String对象的长度
System.out.println("szWelcome的长度为:" + szWelcome.length());
System.out.println("szTemp的长度为:" + szTemp.length());
}
}程序结构分析
代码创建了两个String对象,并分别输出这两个String对象的长度,获取String对象的长度使用了String对象的length()方法。
程序执行结果如下图所示:

获取指定索引位置的单个字符
String类提供了charAt()方法用于获取字符串内的单个字符。语法如下:
str.charAt(int index);
其中,str是已创建的String对象。index是待获取字符在字符串的位置索引。该方法返回单个字符,返回类型是char。
案例2:创建字符串对象,输出字符串对象索引为0、2和字符串最后位置的字符。
在PbaseUnit11项目unit包下创建StringCharSample类。代码如下:
/**
* @Title: StringCharSample.java
* @Package unit
* @Description:Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
/**
* @ClassName: StringCharSample
* @Description: 字符串(获取字符串的长度或字符信息)案例2
* @author 编程训练营
* @date
*
*/
public class StringCharSample {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
// 创建String对象
String szWelcome = "欢迎加入编程小组";
// 获取索引为0的字符
char chTemp1 = szWelcome.charAt(0);
// 获取索引为2的字符
char chTemp2 = szWelcome.charAt(2);
// 获取字符串的最后一个字符
char chTemp3 = szWelcome.charAt(szWelcome.length()-1);
System.out.println("szWelcome的第1个字符为:" + chTemp1);
System.out.println("szWelcome的第2个字符为:" + chTemp2);
System.out.println("szWelcome的最后一个字符为:" + chTemp3);
}
}程序结构分析
代码通过String类的charAt()方法,分别获取了String对象szWelcome的第1个、第2个和最后一个字符,并输出到控制台。
程序执行结果如下图所示:

获取字符串的子串
串中任意个连续的字符组成的子序列称为该串的子串。
对于一个字符串对象“abcdefg”,它的子串就是像“bcd”这样可以找到的连续的字符串。字符串对象“abcdefg”最长的子串就是它本身。
String类提供了substring()方法来截取子串信息,substring()有两种类的重载方法(关于类方法的重载,后面课程会详细讲述)。
第1种方法语法如下:
str.substring(int beginIndex)
其中,str是已创建的String对象,beginIndex是要截取子串开始的索引位置。该方法从指定的索引位置开始截取直到该字符串结尾的子串。
第2种方法语法如下:
str.substring(int beginIndex, int endIndex)
其中,str是已创建的String对象,beginIndex是要截取子串开始的索引位置,endIndex是要截取子串结束位置的索引。该方法从指定的索引位置beginIndex开始截取至endIndex索引位置结束的子串。
案例3:创建字符串对象,分别使用substring()两种方法截取子串。
在PbaseUnit11项目unit包下创建StringSubSample类。代码如下:
/**
* @Title: StringSubSample.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
/**
* @ClassName: StringSubSample
* @Description: 字符串(获取字符串的长度或字符信息)案例3
* @author 编程训练营
* @date
*
*/
public class StringSubSample {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
// 创建String对象
String szWelcome = "欢迎加入编程小组";
// 从索引位置2开始截取至字符串末尾
String szSubStr1 = szWelcome.substring(2);
// 从索引位置2开始截取至索引位置6
String szSubStr2 = szWelcome.substring(2,6);
System.out.println("szSubStr1为:" + szSubStr1);
System.out.println("szSubStr2为:" + szSubStr2);
}
}程序结构分析
代码分别使用substring的两种重载方法截取子串。
程序执行结果如下图所示:
