Java核心編程

                                       1 常用類

 1.1 string和stringbuffer

                                                  string類常用方法

.length(長度)

     Java中的string類在Java.lang包中

    String str = new String();

    str.length()之所以要使用一個方法還不是通過屬性來獲取長度,是爲了防止

    str.length=4;之類的情況發生,這樣就可以實現了面向對象封裝的特性。

   另外,str.length()有一個特點  就是不論是中文還是英文,都是按照1個長度來看待的

  而不是根據所佔字節來計算length長度

eg.String a="Java程序設計";a.length()=8;

 

indexOf (索引)

Java中字符串的查找共有四種方法,如下:

1:int indexof(String str) :返回第一次出現的指定子字符串在此字符串中的索引

2:intindexof(String str ,int startIndex);從指定的索引處開始,返回第一次出現的指定字符串

在此字符串中的索引

3:int lastIndexof(String str):返回在此字符串中最右邊出現的指定子字符串的索引

4:int lastIndexof(String str,int startIndex);從指定的索引出開始向後搜索,返回在此字符串中

最後一次出現的指定子字符串的索引

.charAt

此方法返回位於字符串中的指定索引處的字符,該字符串的索引從零開始

此方法定義的語法如下:

punlic char chatAt(int index)

參數

這裏是參數的細節

   index --返回字符的索引

返回值

  該方法的返回指定索引處char值

equals、      (等於)

String str4 = new String("abc");
String str5 = new String("abc");
System.out.println(str4 == str5);//判斷的是引用

System.out.println(str4.equals(str5));//判斷的是內容

String str1 = new String ("A");

String str2 = new String ("B");

String str3 = new String ("B");

boolean
result1 = str1.equals(str2);

boolean
result2 = str2.equals(str3);
System.out.println(result1);
System.out.println(result2);

String str6 = new String("B");
String str7 = new String("B");
String str8 = str7;
System.out.println(str8 == str7);

結果是:

最後的str8 ==7爲turn的原因是他兩個指向的是同一個String對象

再說明一點,String str = new String("abc")String str ="abc"是有一點小區別的,對於new出來的String對象,是每new一個內存裏生成一個,也就是說其允許存在內容相同的重複對象。而String str ="abc"這種形式是不允許存在內容相同的重複對象,只要內存已經存在了,就不再新生成,而是把新的引用指向原來的對象

replace、(代替)

replace() 方法通過用 newChar 字符替換字符串中出現的所有 oldChar 字符,並返回替換後的新字符串。

語法

public String replace(char oldChar,
                      char newChar)

參數

  • oldChar -- 原字符。
  • newChar -- 新字符。

返回值

替換後生成的新字符串。

實例

public class Test {
    public static void main(String args[]) {
        String Str = new String("hello");

 
        System.out.print("返回值 :" );
        System.out.println(Str.replace('o', 'T'));

 
        System.out.print("返回值 :" );
        System.out.println(Str.replace('l', 'D'));
    }
}

以上程序執行結果爲:

返回值 :hellT
返回值 :heDDo

 

 

split、(分裂)

把相應字符串按照格式分隔開來

split 方法:將一個字符串分割爲子字符串,然後將結果作爲字符串數組返回。

stringObj.split([separator],[limit])
參數:stringObj   必選項。要被分解的 String 對象或文字。該對象不會被 split 方法修改。
separator 可選項。字符串或 正則表達式 對象,它標識了分隔字符串時使用的是一個還是多個字符。如果忽

略該選項,返回包含整個字符串的單一元素數組。 limit可選項。該值用來限制返回數組中的元素個數。

說明:split 方法的結果是一個字符串數組,在 stingObj 中每個出現 separator 的位置都要進行分解。separator 不作爲任何數組元素的部分返回。

split 的實現直接調用的 matcher 類的 split 的方法。“ . ”在正則表達式中有特殊的含義,因此我們使用的時候必須進行轉義"\\."

如果用豎線“|”分隔的話,將出現不可得到的結果,必須改爲“\\|”  

,+ * 不是有效的模式匹配規則表達式,用"//*"        "//+"轉義後即可得到正確的結果。

 

substring、(子串,子鏈)

https://img-blog.csdn.net/20180111133641840?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVodWloaA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

可是實現截取字符串

 

trim、(修剪)

最後總結一下: 
String.Trim()方法會去除字符串兩端,不僅僅是空格字符,它總共能去除25種字符: 
('/t', '/n', '/v', '/f', '/r', ' ', '/x0085', '/x00a0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '?', '/u2028', '/u2029', ' ', '?')


如果你想保留其中的一個或多個(例如/t製表符,/n換行符,/r回車符等),請慎用Trim方法。

請注意,Trim刪除的過程爲從外到內,直到碰到一個非空白的字符爲止,所以不管前後有多少個連續的空白字符都會被刪除掉。

 最後附上兩個相關的方法(也是String類直接提供的),分別去除字符串頭部空白字符的TrimStart方法和去除字符串尾部空白字符的 TrimEnd方法:

TrimStartTrimEnd方法

如果想去除字符串兩端其他任意字符,可以考慮Trim他的重載兄弟:String.Trim(Char[]),傳入你想要去除的哪些字符的數組。

源碼奉上:

public string Trim(params char[] trimChars)

{

    if ((trimChars == null) || (trimChars.Length == 0))

    {

        trimChars = WhitespaceChars;

    }

    return this.TrimHelper(trimChars, 2);

}

空格 != 空白字符,刪除空格請使用: Trim(‘ ‘);

 

format。(格式)

按格式輸出

StringBuffer類常用方法:(伸縮緩衝器)

append、(追加)

    public static void main(String[] args) {

        StringBuffer buf = new StringBuffer("Hard");
       
String astring="waxworks";
       
System.out.println(buf.append(astring,3,8));//buf加上astring中的字符串下標3到下標8的字符


       
StringBuffer buf1 = new StringBuffer("Hard");
        char
[] text = {'W','a','x','w','o','r','k','s'};
       
System.out.println(buf1.append(text,3,5));//buf1加上從數組的下標爲3的地方開始加上下標3本身往後查五個

   
}
}

 

insert、(插入)

public static void main(String[] args) {
       StringBuffer str = new StringBuffer("qwer");

       
System.out.println(str.insert(1,"ang"));//先選中在字符串中的第幾位,在插入所需要插入的內容
   
}
}

 

 

delete、(刪除)

deleteCharAt、(刪除程序)

      StringBuffer buf = new StringBuffer("123456789123");
        
//delete刪除程序
       
//刪除字符串中第五個的後一個到第九個字符
        
buf.delete(5,9);
       
System.out.println(buf);



       
buf = new StringBuffer("abcd");
       
System.out.println(buf);

       
//刪除第二個的後一個
       
buf.deleteCharAt(2);
       
System.out.println(buf);
   
}
}

 

replace、(代替)

    public static void main(String[] args) {//代替
       
//將第三個的下一個到第八個刪除,並替換成haha
    
StringBuffer str = new StringBuffer("qwertyuio");
       
System.out.println(str.replace(3,8,"haha"));

   
}
}

 

setCharAt、

    public static void main(String[] args) {
         //這個方法主要用來替換
       
StringBuffer str = new StringBuffer("LOVE");
        
str.setCharAt(0,'a');
       
System.out.println(str);
   
}
}

 

 

reverse。(顛倒)

   public static void main(String[] args) {
        StringBuffer str = new StringBuffer("abc");
       
StringBuffer str1 = new StringBuffer();
       
str1 = str.reverse();
       
System.out.println(str1);
       
   
}
}

 

 

String 是不可更改的,如需改字符串內容用StringButter

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章