StringBuffer
特点:
- 是字符串缓冲区.
- 是一个容器,其长度可变,可以操作添加多个数据类型.
- 最后通过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.
提高效率
-
2.
提高安全性
简化书写
基础数据类型对象包装类:
小写是基本数据类型 大写开头是类
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 }