String类提供了许多从String对象中截取字符的方法。下面逐一介绍。尽管在一个String对象中构成字符串的字符不能像字符数组一样被索引,许多字符串(String)方法利用下标(或偏移)对字符串进行操作。和数组一样,字符串下标从0开始。
charAt( )
为了从一个字符串(String)中截取一个字符,可以通过charAt( )方法直接引用单个字符。其一般形式如下:

char charAt(int where)

这里,where是想要得到的字符的下标。where的值必须是非负的,它指定了在字符串中的位置。charAt( )方法返回指定位置的字符。例如:

char ch; 
ch = "abc".charAt(1);

将“b”赋给ch。

getChars( )
如果想一次截取多个字符,可以使用getChars( )方法。它有如下的一般形式:

void getChars(int sourceStart, int sourceEnd, char target[ ], int targetStart)

这里sourceStart指定了子字符串开始的下标,sourceEnd指定了子字符串结束的下一个字符的下标。因此子字符串包含了从sourceStart到sourceEnd–1的字符。获得字符的数组由target所指定。将被复制子字符串于其中的target的下标由targetStart指定。

注意必须确保的是数组target应该足够大以保证能容纳被指定子字符串中的字符。

下面的程序说明了getChars( )方法:

class getCharsDemo { 
 public static void main(String args[]) { 
 String s = "This is a demo of the getChars method."; 
 int start = 10; 
 int end = 14; 
 char buf[] = new char[end - start]; 
 s.getChars(start, end, buf, 0); 
 System.out.println(buf); 
 } 
}

该程序的输出如下所示:

demo

getBytes( )
有一种称为getBytes( )的方法,它是实现将字符存放于字节数组中的getChars( )方法的替代,它使用平台提供的默认的字符到字节的转换。下面是它的最简单形式:

byte[ ] getBytes( )

也可使用getBytes( )方法的其他形式。在将字符串(String)值输出到一个不支持16位Unicode编码的环境时,getBytes( )是最有用的。例如,大多数Internet协议和文本文件格式在文本交换时使用8位ASCII编码。

toCharArray( )

如果想将字符串(String)对象中的字符转换为一个字符数组,最简单的方法就是调用toCharArray( )方法。对应整个字符串,它返回一个字符数组。其一般形式为:

char[ ] toCharArray( )

这个函数是为了便于使用而提供的,因此也可以用getChars( )方法获得相同的结果。