黑马程序员--java基础--String,StringBuffer,StringBuilde

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

String的两种实例化方式:

方式1:

		String s1 = "abc"; //s1是一个类类型变量,"abc"是一个对象
						//字符串最大的特点:String一旦初始化就不可以改变
方式2:

String s2 = new String("abc");
两者的区别:

方式1:代表一个对象

方式2:s2有两个对象   new 是一个对象   "abc"是一个对象



String对Object类中的equals()方法进行了重写:

equals

public boolean equals(Object anObject)
将此字符串与指定的对象比较。当且仅当该参数不为  null,并且是与此对象表示相同字符序列的  String 对象时,结果才为  true

字符串的比较:

package String;
/**
 * @param args
 */
public class StringDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s1 = "abc"; //s1是一个类类型变量,"abc"是一个对象
						//字符串最大的特点:String一旦初始化就不可以改变
	
		String s2 = new String("abc");
		//s1和s2的区别,
		//s1代表一个对象
		//s2有两个对象   new 是一个对象   "abc"是一个对象
		String s3 = "abc";//已经存在了所以不再创建,指向同一个对象
		System.out.println(s1 == s2); //两个不是同一个对象
		System.out.println(s1.equals(s2)); //equals比较内存的地址,equals被String类复写了。该方法判断字符串是否相同
		System.out.println(s1 == s3); 
	}

}


StringBuffer:

  StringBuffer是字符串缓冲区,
  是一个容器,可以操作多种数据类型,最终通过toString方法变成字符串
  1.存储
   StringBuffer append() 将指定的数据作为参数添加到已有数据的结尾处
   StringBuffer insert(index,数据);可以将数据插入到指定index位置
  2.删除
   StringBuffer delete(start,end)包含头,不包含尾
   StringBuffer deleteCharAt(index)指定位置的字符   
  3.获取
   char charAt()
        int  indexOf()
        int  lastIndexOf()字符串最后出现的位置
        int  length
        String substring(int start,int end)
  4.修改
   StringBuffer replace(int start,int end,string str) str指定字符串  
   替换字符  void setcharAt(int index,char ch);
  5.反转
  StringBuffer reverse()
  6将缓冲区的指定数据存储到指定数组中
    void getChars()

在操作大量字符串时,我们常用StringBuffer来操作,因为StringBuffer在在同一块内存总操作字符串,更加的高效。

String s1 = "a" + "b" + "c";
String s2 = new StringBuffer().append("a").append("b").append("c").toString();
//s1 等同于s2
StringBuffer的长度是动态的

StringBuffer的常用方法:

1.追加字符串

public StringBuffer append(String str)
将指定的字符串追加到此字符序列。
2.返回字符的位置

public char charAt(int index)


3.移除字符串

public StringBuffer delete(int start,
                           int end)
4.插入字符串

public StringBuffer insert(int offset,
                           char c)
StringBuffer没有实现字符串的分割和equals方法。


StringBuilder和StringBuffer类似,

StringBuilder在多线程中是不安全的多线程中使用StringBuffer

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值