Java程序設計05——String和StringBuffer

String和StringBuffer


String和Stringbuffer類
1.String的聲明
string s1="abc";

string s2 = new String("abc");
2.String內容的比較

在String中,比較兩個字符串是否相同,不能使用==,應使用equals()方法。java

1.「==」方法:比較的是變量(棧)內存中存放的對象的(堆)內存地址,用來判斷兩個對象的地址是否相同app

String str1 = "zjd";//直接賦值
String str2 = new String ("zjd");//經過new賦值
String str3 = str2;
System.out.println("str1 == str2-->"+(str1 == str2));
System.out.println("str1 == str3-->"+(str1 == str3));
System.out.println("str2 == str3-->"+(str2 == str3));

image

緣由:spa

  1. 每個String對象的內存存儲其實都是在堆內存中。
  2. "=="是進行數值比較的,由於str1和str2的在堆內存的地址不同因此:str1和str2不相等–>false

image

2.「equals()"方法:比較的是兩個對象的內容是否相等code

String str1 = "zjd";//直接賦值
String str2 = new String ("zjd");//經過new賦值
String str3 = str2;
System.out.println("str1 equals str2-->"+(str1.equals(str2)));
System.out.println("str1 equals str3-->"+(str1.equals(str3)));
System.out.println("str2 equals str3-->"+(str2.equals(str3)));

image

緣由:由於equals()方法的做用是將內容進行比較,因此此處返回的結果都爲true。對象

3.兩種實例化對象的區別

一個字符串就是一個String 類中的匿名對象,匿名對象就是已經開闢了堆內存空間能夠直接使用的對象。blog

1.直接賦值內存

String str1 = "zjd";//直接賦值
String str2 = "zjd";
String str3 = "zjd";
System.out.println("str1 == str2-->"+(str1 == str2));
System.out.println("str1 == str3-->"+(str1 == str3));
System.out.println("str2 == str3-->"+(str2 == str3);

image

緣由:實際上就是把一個在堆內存中開闢好的空間使用權給str1,而且若是一個字符串已經被一個名稱所引用,則之後再有相同的名稱的字符串聲明時,就不會從新開闢新地址了
imageci

2.經過new的方式實例化字符串

String str1 = new String("zjd");

image

4.一旦被初始化,字符串內容便不能夠被改變
String str1 = "zjd";
str1 =str1+"zka";
System.out.println(str1);

結果:zjdzka

image

二.Stringbuffer

1.特色

1.長度能夠變化
2.經過tostring()方法變爲stringstring

2.聲明以及CURD

1.聲明

StringBuffer s = new StringBuffer();

StringBuffer s = new StringBuffer(「abc」);

String s1 = sb1.toString();

2.Create

StringBuffer sb = new StringBuffer(「abc」);

sb.append(true);

結果:abctrue

3.Update

StringBuffer sb = new StringBuffer(「TestString」);

sb.insert(4,false);

結果:TestfalseString

StringBuffer sb = new StringBuffer("helloworldjava");

sb.replace(5, 10, "節日快樂");

結果:hello節日快樂java

StringBuffer sb = new StringBuffer(「abc」);

sb.setCharAt(1,’D’);

結果:aDc

4.Delete

StringBuffer sb = new StringBuffer(「Test」);

sb. deleteCharAt(1);

結果:Tst

StringBuffer sb = new StringBuffer(「TestString」);

sb. delete (1,4);

結果:TString

5.反轉

StringBuffer sb = new StringBuffer(「abc」);

sb.reverse();

結果:」cba」。

6.獲取(capacity=length+16)

StringBuffer sb = new StringBuffer("Hello");   
System.out.println("length = "+sb.length);  
System.out.println("capacity = "+sb.capacity);

結果:5 21

StringBuffer sb = new StringBuffer("Java is a programming language : ");
sb.charAt(2)
 
結果:v

StringBuffer sb = new StringBuffer("Hello");   
System.out.println(sb.indexOf(2));  
System.out.println();

StringBuffer sb = new StringBuffer("sdbajd");
String s = sb.substring(5);   
System.out.println("s:"+s); 

String ss = sb.substring(3,4);
String ss = sb.substring(3,5);
System.out.println("ss:"+ss);

結果:d  a aj
相關文章
相關標籤/搜索