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