Java基础笔记-String类2

StringBuffer

特点:

  1. 是字符串缓冲区.
  2. 是一个容器,其长度可变,可以操作添加多个数据类型.
  3. 最后通过toString方法变成字符串.

被final锁修饰,因此不能被继承.

 

存储:

方法1:append() 添加数据到缓冲区.

返回类型:StringBuffer

方法: append(指定数据)  将指定数据添加到已有数据的结尾.

 

方法2:insert(index,数据内容)

返回类型:StringBuffer

方法: insert(index,数据内容) 将数据内容插入到指定的index位置中去.

 

删除:

方法1: delete(int start,int end) 删除缓冲区的数据.

返回类型:StringBuffer

方法: delete(int start,int end) 将数据从start开始到end的位置删除

包含头不包含尾部,即包含start的位置,不包含end的位置.

方法2: deletecharAt(index)  删除指定index位置的字符

 

替换:

方法1: replace(位置1,位置2,(String类型的)替换内容)

返回类型为StringBuffer

方法: replace(位置1,位置2,(String类型的)替换内容)

将数据从位置1到位置2(不包含位置2)的数据替换成要要替换的字符串内容.

方法2: setCharAt(位置,要替换的内容)

返回类型 void

方法: setCharAt(int位置,char要替换的内容) 将数据从指定的位置用替换的字符内容.

 

反转: reverse() 返回类型StringBuffer.

有关的代码实例:

 1 class StringBufferDemo

 2 {

 3     public static void main(String args[])

 4     {

 5         //function_add();

 6         //function_del();

 7         StringBuffer sb = new StringBuffer("abcdefg");

 8         char [] ch = new char[6];

 9         sb.getChars(1,4,ch,1);

10         for(int i = 0; i <=ch.length; i++)

11         {

12             printer("ch ["+i+"]="+ch[i]+";");

13         }

14     }

15     public static void function_del()

16     {

17         StringBuffer sb = new StringBuffer("abcdefg");

18         

19         // sb.delete(0,sb.length()); //清空缓冲区.

20         

21         sb.delete(2,5); //删除缓冲区中字符串位置2到5的数据,不包含位置5.

22         printer(sb.toString());

23         // sb.delete(1,2);

24         sb.deleteCharAt(1); //删除一个数据,等价于上面的代码: sb.delete(1,2);

25         

26         printer(sb.toString());

27         

28     }

29     public static void function_add()

30     {

31         StringBuffer sb = new StringBuffer();

32         sb.append("abc").append("def").append(true).append(123);

33         

34         //StringBuffer sb1 = sb.append(34);

35         

36         sb.insert(1,"QQQ"); //将字符串"QQQ"从位置1中插入到缓冲区的数据中.

37         

38         // sb.insert(100,"QQQ"); 编译的时候会出现角标越界的异常.

39         //printer("sb==sb1?:"+(sb==sb1));

40         

41         printer(sb.toString());

42         //printer(sb1.toString());

43     }

44         

45     public static void printer(String str)

46     {

47         System.out.println(str);

48     }

49 }

 

JDK1.5版本以后出现了StringBuilder

StringBuffer是线程同步.

StringBuidlder是线程不同步,单线程的时候效率高.快捷.

以后开发建议使用StringBuilder.

JDK升级一般三个方面:

  1. 1.  提高效率
  2. 2.  提高安全性
  3. 简化书写

 

基础数据类型对象包装类:

小写是基本数据类型  大写开头是类

int    Integer

byte   Byte

float   Float

double   Double

boolean   Boolean

char       Character

short    Short

long    Long

 

1.获取整型变量的最大值: Integer.MAX_VALUE

例如:printer("int max = "+Integer.MAX_VALUE);

 

最常见应用为:

将基本数据类型转成字符串.

    方法1:  基本数据类型+””

    方法2:  基本数据类型类.toString(基本数据类型)

    例如: Integer.toString(34); 将整数34转成字符串类型的”34”.

 

将字符串转成基本数据类型

将一个字符串转成整数:

(静态调用方式)

Integer.parseInt(“32”); 将字符串”32”转成整数 32.

 

格式为:

xxx a = Xxx.parseXxx(String);

例如: int a = Integer.parseInt(“123”);

 

非静态方法转换 (对象调用方式)

Integer a = new Integer(“123”);

int num = a.intValue();

 

进制之间转换:

十进制转成其他进制:

Integer.toBinayString(要转的数); //转成二进制

Integer.toHexString(要转的数);   //转成十六进制

Integer.toOctalString(要转的数); //转成八进制

其他进制转成十进制:

格式:

xxx a = Xxx.parseXxx(要转换的数,要转的进制)

例如: int a = Integer.parseInt(“110”,2); 将110用二进制转成十进制数.

括号中的数和转换的进制需要相互对应.不然的话编译会有异常发生.

 相关的简单代码实例:

 1 class IntegerDemo

 2 {

 3     public static void main(String args[])

 4     {

 5         //获取整型变量的最大值

 6         printer("int max = "+Integer.MAX_VALUE);

 7         

 8         int num = Integer.parseInt("123"); //将字符串"123"转成整数123.

 9         num = num +4; //将整数4和整数123先加

10         printer("num ="+num);  //输出的结果为127.

11         

12         printer(Integer.toBinaryString(-6));//将十进制数转成二进制数

13         printer(Integer.toHexString(60));        //将十进制数转成十六进制数

14         printer(Integer.toOctalString(60)); //将十进制数转成八进制数

15         

16         int a = Integer.parseInt("110",2); //将二进制数110按2进制转换成十进制数 // 二进制数110对应的十进制数是6.

17         printer("a="+a); //结果a=6.

18         

19     }

20      

21     public static void printer(String str)

22     {

23         System.out.println(str);

24     }

25         

26 

27 }
 1 class IntegerDemo1

 2 {

 3     public static void main(String args[])

 4     {

 5         //function();

 6         //Integer a = new Integer(4);

 7         Integer a = 4; //自动装箱

 8         a=a+2; //a+2中的a相当于做了a.intValue()操作,a自动拆箱变成了int类型.然后和2进行运算,在将和进行自动的装箱操作赋值给a.

 9         printer("a="+a);

10         

11         

12         Integer x = 128;

13         Integer y = 128;

14         printer("x==y:?"+(x==y)); //结果是false.

15         

16         Integer m = 127;

17         Integer n = 127;

18         printer("m==n:?"+(m==n)); //结果为true. m 和n指向的是同一个Integer对象

19                                                             //因为当数值在byte范围之内的时候,对于JDK1.5以后的新版本,如果该数值已经存在,不会在开辟新的空间.

20         

21     }

22     public static void function()

23     {

24         Integer x = new Integer("123");

25         Integer y = new Integer(123);

26         printer("x==y:?"+(x==y));

27         printer("x.equals(y):?"+x.equals(y));

28     }

29     public static void printer(String str)

30     {

31         System.out.println(str);

32     }

33     

34     

35 }

 

你可能感兴趣的:(String类)