String、StringBuffer、StringBuilder中的一些方法使用
一.getChars()方法
1 /** 2 * getChars(int srcBegin,int srcEnd,char[]dst,int dstBegin) 3 * 将该方法从srcBegin开始到srcEnd结束的字符串复制到dst数组,复制的起始位置为dstBegin 4 * 温馨小提示:1.被操作字符串包括起始位置,但是不包括结束位置-->即将study全部复制结束位置是5而不是4 5 * 2.要复制的字符串的长度不能大于字符数组长度,即:从'J'开始覆盖五个字符 6 * 原字符数组数组从'J'开始必需还有五个存储空间 7 * 否者发生 java.lang.ArrayIndexOutOfBoundsException异常 8 */ 9 public class GetChars { 10 public static void main(String[] args) { 11 char []s1= {'I',' ','L','o','v','e',' ','J','a','v','a','s'};//声明字符数组s1 12 String s2="study";//被操作字符串 13 s2.getChars(0, 5, s1, 7);//包括起始位置,但是不包括结束位置 14 System.out.println(s1); 15 } 16 }
二.indexOf()方法
1 /** 2 * indexOf(String str,int fromIndex)找出ch字符在fromIndex第一次出现的位置 3 */ 4 public class IndexOf { 5 public static void main(String[] args) { 6 String r="www.cnblogs.com"; 7 String r1="lo"; 8 System.out.println("r.indexOf('o'):"+r.indexOf('o')); 9 System.out.println("r.indexOf('c', 2):"+r.indexOf('c', 2));//从'w'开始 10 System.out.println("r.indexOf('c', 5):"+r.indexOf('c', 5));//从'n'开始 11 System.out.println("r.indexOf(r1):"+r.indexOf(r1)); 12 } 13 }
三.startsWith()方法
1 /**
2 * Boolean startsWith(String prefix,int toffset)
3 * 从toffset算起是否以prefix开始
4 */
5 public class startWith {
6 public static void main(String[] args) {
7 String k="www.sohu.com";
8 String k1="www";
9 String k2="sohu";
10 System.out.println(k.startsWith(k1));//是否以"www"开始
11 System.out.println(k.startsWith(k2,4 ));//从'.'算起,是否以"sohu"开始
12 }
13 }
四.endsWith()方法
1 /* 2 * endsWith(xxx)返回对象是否以xxx结尾 3 */ 4 public class EndsWith { 5 public static void main(String[] args) { 6 String core="www.baidu.com"; 7 String core1=".com"; 8 9 System.out.println("core.endsWith(core1):"+core.endsWith(core1));//返回core对象是否以.com结尾 10 } 11 }
五.toUpperCase()与toLowerCase()方法
1 /** 2 * toUpperCase()与toLowerCase()方法 3 */ 4 public class ToUpperCase { 5 public static void main(String[] args) { 6 String p="shenzhoNGRushi"; 7 System.out.println(p.toUpperCase());//转大写 8 System.out.println(p.toLowerCase());//转小写 9 } 10 }
六.compareTo()方法
1 /** 2 * compareTo(String anotherString)方法:比较的是两个字符串序列差 3 * ①当一个字符串为另一个字符串的子集:比较的是长度差 4 * ②当两个字符串有部分相同,知道遇到不同字符:比较的是字符差 5 * @author 罗摩衔那 6 * 7 */ 8 public class compareTo { 9 public static void main(String[] args) { 10 String s="bksjcnsourh"; 11 String s2="bksjcns"; 12 String s3="bksjcnsjurh"; 13 14 System.out.println("s.compareTo(s2):"+s.compareTo(s2));//比较长度差 15 System.out.println("s.compareTo(s3):"+s.compareTo(s3));//比较'o'与'j'的差 16 } 17 }
七.StringBuffer类
1 /** 2 * StringBuffer类的追加、插入、替换、删除等操作 3 * 温馨小提示:StringBuffer和String的最大区别就在于:StringBuffer的字符序列是可变的 4 * @author 罗摩衔那 5 * 6 */ 7 public class StringBuildTest { 8 public static void main(String[] args) { 9 StringBuilder sb=new StringBuilder();//创建StringBuilder对象 10 //追加 11 sb.append("坚强的男孩"); 12 System.out.println(sb); 13 //插入 14 sb.insert(0, "做一个 "); 15 System.out.println(sb); 16 //替换 17 sb.replace(3, 4, ",");//包含开始位置,不包含结束位置 18 System.out.println(sb); 19 //删除 20 sb.delete(3, 4);//包含开始位置,不包含结束位置 21 System.out.println(sb); 22 //反转 23 sb.reverse(); 24 System.out.println(sb); 25 System.out.println(sb.length());//输出长度 26 System.out.println(sb.capacity());//输出容量 27 //改变长度 28 sb.setLength(5); 29 System.out.println(sb); 30 } 31 }
八.deleteCharSet()方法
/* * deleteCharSet用来删除指定位置的字符串 */ public class deleteCharSet { public static void main(String[] args) { StringBuffer sb=new StringBuffer("龙之谷之精灵王座"); sb.deleteCharAt(3); System.out.println(sb); } }
九.setCharAt()方法
1 /* 2 * setCharAt方法用来修改指定位置的字符 3 */ 4 public class setCharAt 5 { 6 public static void main(String[] args) 7 { 8 StringBuffer sb=new StringBuffer("龙之谷之精灵王座"); 9 sb.setCharAt(4, '破'); 10 System.out.println(sb); 11 } 12 }
补充:String和StringBuffer的区别
1.String的值是不可变的,对String的操作每次都会生成新的字符串对象-->耗费内存
2.StringBuffer对字符串的操作不会生成新的对象,StringBuffer默认分配16个字节长度的缓存区,当字符串长度超过该大小,会自动扩大
//默认分配16字节长度的缓存区 StringBuffer s=new StringBuffer(); //分配500字节长度的缓存区 StringBuffer s1=new StringBuffer(500); //在缓存区存放了字符串,并在后面预留了16字节长度的缓存区 StrignBuffer S2=new StringBuffer("www.cnblogs.com");
p:大佬们放过我,我知道我不该用方法名命名类名