StringBuffer__【String类的应用】【基本数据类型包装类】



StringBuffer

字符串缓冲区,容器,面盆理论,

特点: 长度可变;可以直接操作将多种数据类型;通过toString方法变成字符串

		StringBuffer sb = new StringBuffer();
		StringBuffer sb1 =sb.append("fes");
		sop("sb==sb1:"+(sb==sb1));
输出结果为:true

==比较的是内存首地址,sb==sb2说明指向同一个缓冲区

StringBuffer被final修饰,所以不能被继承


增删改查
1,存储
StringBuffer append();在尾部添加
StringBuffer insert(index,数据);在指定位置添加
2,删除
StringBuffer delete(start, end);删除缓冲区中数据,包含start不包含end
StringBuffer deleteCharAt(index);删除自定位置的字符
3,获取。
char charAt(int index) 
int indexOf(String str) 
int lastIndexOf(String str) 
int length() 
String substring(int start, int end) 
4,修改。
StringBuffer replace(start,end,string);头,尾,被替换内容
void setCharAt(int index, char ch) ;替换一个字符,只替换,不返回
5,反转。
StringBuffer reverse();

6,将缓冲区中指定数据存储到指定字符数组中。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 

JDK1.5 版本之后出现了一个兼容的APT;StringBuilder.;
StringBuffer是线程同步。 多线程
StringBuilder是线程不同步。 单线程
以后开发,建议使用StringBuilder ;效率更高
升级三个因素:提高效率,简化书写,提高安全性

常见操作示例

class StringTest
{
	public static void sop(String str){
		System.out.println(str);
	}
	public static void main(String[] args){
		//method_add();
		//method_dell();
		//method_update();
		method_6();
	} 
	
	public static void method_6(){
		StringBuffer sb= new StringBuffer("abcdefg");
		char[] chs = new char[6];
		
		sb.getChars(1,5,chs,2);//将缓冲区指定字符串存到指定数组中的指定位置
		for(int x=0;x<chs.length ;x++){
			sop("chs["+x+"]="+chs[x]);
		}
	}
	
	public static void method_update(){//改
		StringBuffer sb = new StringBuffer("0123456789abcd");
		sb.replace(3, 5, "Hello");//替换	从指定位置到指定位置	包含头不包含尾
		sb.setCharAt(2, 'm');	//替换指定角标字符	返回值为void要注意
		sop(sb.toString());
	}
	
	public static void method_dell(){	//删
		StringBuffer sb = new StringBuffer("0123456789abcd");
		sb.delete(6, 11);//聪6到11,包含头不包含尾
		sb.deleteCharAt(1);//删除1角标上字符
		sb.delete(0, sb.length());//清空缓冲区
		sop(sb.toString());
	}
	
	public static void method_add(){	//增
		StringBuffer sb = new StringBuffer();
		
		sb.append("apppend").append("hello").append("world");//添加在尾部
		
		sb.insert(2," haha ");//插入到指定位置
		//StringBuffer sb1 =sb.append("fes");
		//sop("sb==sb1:"+(sb==sb1));
		sop(sb.toString());
		//sop(sb1.toString());
	}
}

基本数据类型对象包装类


基本数据类型对象包装类。
byte Byte
short short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character

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

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

基本数据类型+""
基本数据类型.toString(基本数据类型值);
如: Integer.toString(34);//将34整数变成"34";

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

xxx a = Xxx.parseXxx(String);
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
boolean b = Boolean.parseBoolean("true");
Integer i = new Integer("123");
int num = i.intValue();


十进制转成其他进制。
toBinaryString();
toHexString();
toOctalString();


其他进制转成十进制。
parseInt(string,radix);

基本数据类型包装类示例

class IntegerDemo 
{
	public static void sop(String str)
	{
		System.out.println(str);
	}
	public static void main(String[] args)
	{
		//Integer x = new Integer(4);
		Integer x = 4;//自动装箱,对象不能为null	new Integer(4);
		x = x+2; //x进行自动拆箱,变成int类型,运算后再将结果装箱赋给x
			//拆箱原理:x.intValue()

		Integer a = 128;
		Integer b = 128;
		Integer m = 127;
		Integer n = 127;
		
		sop("a==b:"+(a==b));//false	开辟新空间,不是同一个对象
		sop("m==n:"+(m==n));//true 新特性:当数值在byte范围内时,如果该数值已经存在,不开辟新空间
	}
	
	public static void method_trans()		//数据类型转换
	{
		int num = Integer.parseInt("123");//将字符串""转换成int型
		long x = Long.parseLong("123");
		//sop("num="+num);
		//sop("x="+x);
		sop(Integer.toBinaryString(60));//将十进制转换成二进制
		sop(Integer.toHexString(60));//将十进制转换成16进制
		sop(Integer.toOctalString(60));//将十进制转换成八进制
		
		sop("x="+ Integer.parseInt("1111",16) );//将其他进制转换成十进制
	}
	public static void method_equals()		//Integer复写了Object类中的equals方法
	{
		Integer x= new Integer ("123");
		Integer y= new Integer (123);

		sop("x==y:       "+(x==y));		//是否同一个对象
		sop("x.equals(y):"+x.equals(y));//是否相等,
	}
}



原文地址:https://www.cnblogs.com/Joure/p/4337225.html