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:大佬们放过我,我知道我不该用方法名命名类名

 

posted @ 2018-11-25 10:37  静心*尽力  阅读(588)  评论(0编辑  收藏  举报