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 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。