public class Main {
public static void main(String[] args) {
CharSequence cs = "hello world!";
print(cs.length()); // 12
print(((String) cs).substring(1,2)); //e
print(cs.charAt(2)); //l
}
public static void print(Object obj) {
System.out.println(obj);
}
}
public class Main {
public static void main(String[] args) {
System.out.println("-------------------------------- testCharSequence -----------------------------");
// 1. CharSequence的子类String
String str = "abcdefghijklmnopqrstuvwxyz";
System.out.println("1. String");
System.out.printf(" %-30s=%d\n", "str.length()", str.length());
System.out.printf(" %-30s=%c\n", "str.charAt(5)", str.charAt(5));
String substr = (String)str.subSequence(0,5);
System.out.printf(" %-30s=%s\n", "str.subSequence(0,5)", substr.toString());
// 2. CharSequence的子类StringBuilder
StringBuilder strbuilder = new StringBuilder("abcdefghijklmnopqrstuvwxyz");
System.out.println("2. StringBuilder");
System.out.printf(" %-30s=%d\n", "strbuilder.length()", strbuilder.length());
System.out.printf(" %-30s=%c\n", "strbuilder.charAt(5)", strbuilder.charAt(5));
// 注意:strbuilder的subSequence()返回的是,实际上是一个CharSequence 类型!
String substrbuilder = (String)strbuilder.subSequence(0,5);
System.out.printf(" %-30s=%s\n", "strbuilder.subSequence(0,5)", substrbuilder.toString());
// 3. CharSequence的子类StringBuffer
StringBuffer strbuffer = new StringBuffer("abcdefghijklmnopqrstuvwxyz");
System.out.println("3. StringBuffer");
System.out.printf(" %-30s=%d\n", "strbuffer.length()", strbuffer.length());
System.out.printf(" %-30s=%c\n", "strbuffer.charAt(5)", strbuffer.charAt(5));
// 注意:StringBuffer的subSequence()返回的是,实际上是一个CharSequence 类型!
String substrbuffer = (String)strbuffer.subSequence(0,5);
System.out.printf(" %-30s=%s\n", "strbuffer.subSequence(0,5)", substrbuffer.toString());
System.out.println();
}
}
-------------------------------- testCharSequence -----------------------------
1. String
str.length() =26
str.charAt(5) =f
str.subSequence(0,5) =abcde
2. StringBuilder
strbuilder.length() =26
strbuilder.charAt(5) =f
strbuilder.subSequence(0,5) =abcde
3. StringBuffer
strbuffer.length() =26
strbuffer.charAt(5) =f
strbuffer.subSequence(0,5) =abcde