--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------
1. StringBuffer
1.概述
StringBuffer是一个容器,是字符串的缓冲区,线程安全序列
2.特点
长度可以变换,可以操作多种类型数组
2.增加和插入
1.在尾部插入数组,append(int a),此方法是子字符串的尾部插入的数据,有很多重载方法,此方法返回的是StringBuffer对象,还是本身对象
2.在字符串的指定位置插入数据,用insert(int a),此方法也有很多重载的方法,此方法返回的是StringBuffer对象,还是本身对象
3.StringBuffer bu=new StringBuffer(“abc”);
bu.insert(bu.length,”def”);和bu.append(“def”);是一样的。
public class StringBufferDemo { public static void main(String [] agrs){ StringBuffer bu=new StringBuffer(); 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();
public void getChars(int srcBegin,int srcEnd,char[] dst,
int dstBegin)将字符串指定范围的字符串方法指定字节数组的范围内。
2替换replay()
3.删除 delete(start,end) deleteCharAt(int index)
public class StringBufferDemo { public static void main(String [] agrs){ StringBuffer bu=new StringBuffer(); bu.append("abc").append(123).append(true);//在尾部连续添加 System.out.println("bu="+bu); char []cs=new char[5]; bu.getChars(0, 4, cs, 1);//将bu中充0~4,包含0不包含4的字符方法字节数组中从1开始存放 for(char c: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-----Byte int-----Integer
short-----Shortbyte-----Byte
double-----Double float---Float
char ---Character boolean---Boolean
作用,一般就是用于数据类型和字符串之间的转换,基本数据类型转换成字符串和字符串转换成基本数据类型
public class BaoZhuang { public static void main(String[] args) { String s1="123"; int a=Integer.parseInt(s1);//将字符串转换成整形 String s2=a+"abc";//将整形转换成字符串 System.out.println("s1="+s1); System.out.println("a="+a); System.out.println("s2="+s2); } } 结果: s1=123 a=123 s2=123abc
2. 进制转换
public class BaoZhuang { public static void main(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之间的转换。
Integer in=new Integer(“123”); Int num=in.intValue(); Int n=Integer.parseInt(“123”); 6. 装箱和拆箱 public class Text { public static void main(String[] args) { //JDK1.5新特性 Integer n=3;//自动装箱,n是一个对象,而3是int类型,此时3会自动转换成Integer类型,这是自动装箱 n=n+2;//x是对象,2是基本数据类型,因为对象没有加法操作,所以 //n会自动的转换成in类型,然后和2想加,会把结果x+2自动的转换成Integer(装箱) Integer x=127; Integer x1=127; System.out.println(x==x1);//true System.out.println(x.equals(x1));//true Integer y1=128; Integer y2=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培训、期待与您交流! --------------------