String 类的 length 方法返回此 String 对象的长度。也就是说,它等于字符串中包含的 Unicode 代码单元的数量。
System.out.println( "Hi".length() );
输出:
2
可以使用 charAt 和 length 方法遍历字符串中的字符:
String str = "Java is fun";
for(int i = 0 ; i < str.length(); i++){
System.out.println( str.charAt(i));
}
输出:
J
a
v
a
i
s
f
u
n
字符的索引从 0 开始,到字符串的长度 –1 结束。因此,字符串的第一个字符的索引是 0,最后一个字符的索引是长度 –1。
String str = "Java is fun";
System.out.println( "First character of string: " + str.charAt(0));
System.out.println( "Last character of string: " + str.charAt( str.length() - 1 ));
输出:
First character of string: J
Last character of string: n
如果尝试访问范围以外的字符,则会抛出 StringIndexOutOfBoundsException。
String str = "Java is fun";
System.out.println( str.charAt( str.length() ));
输出:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 11
at java.lang.String.charAt(Unknown Source)
上面的代码访问字符串长度索引位置的字符,但字符串的最后一个字符的索引位置是字符串长度 -1,所以会抛出这个异常。