黑马程序员_字符串缓冲区

------- android培训java培训、期待与您交流! ---------- 

 

StringBuffer

1.是一个容器,构造一个其中不带字符的字符串缓冲区,初始容量为 16个字符。

2.特点:

(1)长度是可变化的。

(2)可以字节操作多个数据类型。

(3)最终会通过toString方法变成字符串。

StringBuffer一般方法

1.存储

       StringBufferappend()将指定数据作为参数添加到已有数据结尾处。

       StringBufferinsert(index,数据)可以将数据插入到指定index位置。

2.删除

       StringBufferdelete(start,end)删除缓冲区中的数据,包含start,不包含end

       StringBufferdeleteCharAt(index)删除指定位置的字符。

3.获取

       charcharAt(int index)

       intindexOf(String str)

       intlastIndexOf(String str)

       intlength()

       Stringsubstring(int start, int end) 

4.修改

       StringBufferreplace(start,end,string)

       voidsetCharAt(int index, char ch)

5.反转

       StringBufferreverse()

6.将缓冲区中指定数据存储到指定字符数组中。

       voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

StringBuilder

1.构造一个其中不带字符的字符串生成器,初始容量为 16个字符。

2.JDK1.5版本之后出现了StringBuilder替换StringBuffer

3.两者区别

StringBuffer是线程同步(单线程),不用考虑安全问题,效率快。

StringBuilder是线程不同步(多线程),考虑安全问题,效率慢。

4.以后开发,建议使用StringBuilder

5.升级三个因素:(1)提高效率。(2)简化书写。(3)提高安全性。

示例:将缓冲区中指定数据存储到指定字符数组中。

class StringBufferDemo

{

       publicstatic void main(String[] args)

       {

              StringBuildersb = new StringBuilder("abcdef");//创建一个缓冲区对象

              char[]chs = new char[6];

              sb.getChars(1,4,chs,1);//获取“abcdef”字符串中第1角标到第3角标(bcd),并添加到chs字符数组中,1表示获取的字符串在数组中存储角标开始的位置

              for(intx=0; x

              {

                     System.out.println(("chs["+x+"]="+chs[x]+";"));

              }

       }

}

 

基本数据类型对象包装类

1.将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。

2. 基本数据类型对象包装类。

byte——>Byte

short——>short

int——>Integer

long ——>Long

boolean——>Boolean

float ——>Float

double——>Double

char——>Character

3.基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换

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

       (1)基本数据类型+""

(2)基本数据类型.toString(基本数据类型值);

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

       xxxa = Xxx.parseXxx(String);

int a =Integer.parseInt("123");

       doubleb = Double.parseDouble("12.23");

       booleanb = Boolean.parseBoolean("true");

       Integeri = new Integer("123");int num = i.intValue();

6.十进制转成其他进制。

       toBinaryString();

       toHexString();

       toOctalString();

7.其他进制转成十进制。

       parseInt(string,radix);//radix进制数

示例

class IntegerDemo

{

       publicstatic void sop(String str)

       {

              System.out.println(str);

       }

       publicstatic void main(String[] args)

       {

 

              //将一个字符串转成整数。

              intnum = Integer.parseInt("123");//必须传入数字格式的字符串。

              sop("num="+(num+4));

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

              sop(Integer.toHexString(60));//将十进制转换成八进制

              intx = Integer.parseInt("3c",16);//将十六进制转换成十进制

              sop("x="+x);

       }

}

基本数据类型对象包装类新特性

1. JDK1.5版本以后出现的新特性,简化了定义方式。自动装箱和自动拆箱。

2.注意:在使用时,Integernull值,会出现NullPointerException(空指针异常),新特性健壮性稍差,在使用时需要进行判断。

示例

class IntegerDemo1

{

       publicstatic void main(String[] args)

       {

              Integerx = 4;//自动装箱。newInteger(4)

              x= x+ 2;//自动拆箱。变成成了int类型。和2进行加法运算。x.intValue()

              System.out.println(x);//再将和进行装箱赋给x

              Integera = 127;

              Integerb = 127;

              System.out.println("a==b:"+(a==b));

//结果为true。因为ab指向了同一个Integer对象。

              //因为当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会在开辟新的空间。

       }

}

------- android培训java培训、期待与您交流! ---------- 

 

你可能感兴趣的:(Java基础日记)