您的位置:首页 > 职场人生

黑马程序员_<<StringBuffer,包装类>>

2013-09-17 23:00 344 查看
--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流!--------------------

1.StringBuffer

1.概述

StringBuffer是一个容器,是字符串的缓冲区,线程安全序列

2.特点

长度可以变换,可以操作多种类型数组

2.增加和插入

1.在尾部插入数组,append(inta),此方法是子字符串的尾部插入的数据,有很多重载方法,此方法返回的是StringBuffer对象,还是本身对象

2.在字符串的指定位置插入数据,用insert(inta),此方法也有很多重载的方法,此方法返回的是StringBuffer对象,还是本身对象

3.StringBufferbu=newStringBuffer(“abc”);

bu.insert(bu.length,”def”);和bu.append(“def”);是一样的。

publicclassStringBufferDemo{ publicstaticvoidmain(String[]agrs){ StringBufferbu=newStringBuffer(); bu.append("abc").append(123).append(true);//在尾部连续添加 System.out.println("bu="+bu); bu.insert(3,"xx");//在3的位置插入"xx",就是在"abc"后面 System.out.println("bu="+bu); } } 结果: bu=abc123true bu=abcxx123true



3.一般操作

1.获取subString();

publicvoidgetChars(intsrcBegin,intsrcEnd,char[]dst,

intdstBegin)将字符串指定范围的字符串方法指定字节数组的范围内。


2替换replay()

3.删除delete(start,end)deleteCharAt(intindex)


publicclassStringBufferDemo{
publicstaticvoidmain(String[]agrs){
StringBufferbu=newStringBuffer();
bu.append("abc").append(123).append(true);//在尾部连续添加
System.out.println("bu="+bu);
char[]cs=newchar[5];
bu.getChars(0,4,cs,1);//将bu中充0~4,包含0不包含4的字符方法字节数组中从1开始存放
for(charc:cs)
System.out.print(c+"");
bu.deleteCharAt(2);//将第三个字符删除
System.out.println("bu="+bu);
bu.delete(0,bu.length());//清空字符串
System.out.println("bu="+bu);

}
}



4.StringBuilder

1.5版本之后才有的。线程不同步,不安全,但是能提高效率。可变的字符序列。简化书写,提高安全性用法和StringBuffer一样,其中也会有一个差异的。

5.包装类

1.概述

包装类就是把基本数据类型封装成了包和对象,这样就可以使用对象来操作了。

byte-----Byteint-----Integer

short-----Shortbyte-----Byte

double-----Doublefloat---Float

char---Characterboolean---Boolean

作用,一般就是用于数据类型和字符串之间的转换,基本数据类型转换成字符串和字符串转换成基本数据类型

publicclassBaoZhuang{
publicstaticvoidmain(String[]args){
Strings1="123";
inta=Integer.parseInt(s1);//将字符串转换成整形

Strings2=a+"abc";//将整形转换成字符串
System.out.println("s1="+s1);
System.out.println("a="+a);
System.out.println("s2="+s2);

}
}
结果:
s1=123
a=123
s2=123abc


2.进制转换

publicclassBaoZhuang{
publicstaticvoidmain(String[]args){

System.out.println("10转换成二进制:"+Integer.toBinaryString(10));
System.out.println("10转换成八进制:"+Integer.toOctalString(10));
System.out.println("10转换成十六进制:"+Integer.toHexString(10));

System.out.println("110转换成十进制:"+Integer.parseInt("110",2));
System.out.println("076转换成十进制:"+Integer.parseInt("076",8));
System.out.println("3c转换成十进制:"+Integer.parseInt("3c",16));
}
}

结果:
10转换成二进制:1010
10转换成八进制:12
10转换成十六进制:a
110转换成十进制:6
076转换成十进制:62
3c转换成十进制:60

3.整形和Integer之间的转换。

Integerin=newInteger(“123”);
Intnum=in.intValue();
Intn=Integer.parseInt(“123”);

6.装箱和拆箱

publicclassText{
publicstaticvoidmain(String[]args){
//JDK1.5新特性
Integern=3;//自动装箱,n是一个对象,而3是int类型,此时3会自动转换成Integer类型,这是自动装箱
n=n+2;//x是对象,2是基本数据类型,因为对象没有加法操作,所以
//n会自动的转换成in类型,然后和2想加,会把结果x+2自动的转换成Integer(装箱)

Integerx=127;
Integerx1=127;
System.out.println(x==x1);//true
System.out.println(x.equals(x1));//true
Integery1=128;
Integery2=128;
System.out.println(y1==y2);//false
System.out.println(y1.equals(y2));//true

/*在1.5新特性中,只要是在byte类型的范围-128~127之间,他们都存在,不会在开辟新的空间,任何数据都相等
*超过这个范围,那么他们的地址就不相等了*/
}
}
结果:
true
true
false
true


在1.5新特性中,只要是在byte类型的范围-128~127之间,他们都存在,不会在开辟新的空间,任何数据都相等,超过这个范围,那么他们的地址就不相等了

--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流!--------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: