1. 程式人生 > >《Java程式設計》第八章學習總結

《Java程式設計》第八章學習總結

201711671111 《Java程式設計》第八章學習總結

1.String類

  • Java專門提供了用來處理字元序列的String類。
  • String類在java.lang包中,由於java.lang包中的類被預設引入,因此程式可以直接使用String類。
  • 需要注意的是Java把String類宣告為final類,因此使用者不能擴充套件String類,即String類不可以有子類。

2.構造String物件

  • 常量物件:字串常量物件是用雙引號括起的字元序列,例如:"你好"、"12.97"、"boy"等。
  • String物件:

可以使用String類宣告物件並建立物件,例如:

 String  s = new String("we are students");

 String  t = new String("we are students");

  • 另外,使用者無法輸出String物件的引用。也可以用一個已建立的String物件建立另一個String物件,如:

 String tom = new String(s);

  • String類還有兩個較常用的構造方法。

(1)String (char a[])用一個字元陣列a建立一個String物件,如:

      char a[] = {'J','a','v','a'};

     String s = new String(a);

 過程相當於

      String s = new String("Java");

(2)String(char a[],int startIndex,int count) 提取字元陣列a中的一部分字元建立一個String物件,引數startIndex和count分別指定在a中提取字元的起始位置和從該位置開始擷取的字元個數,如:

 char a[] = {'零','壹','貳','叄','肆','伍','陸','柒','捌','玖'};

 String s = new String(a,2,4);

 相當於

 String s = new String("貳叄肆伍");

  • 引用String常量:String常量是物件,因此可以把String常量的引用賦值給一個String物件。

3.字串的並置

  • String物件可以用“+”進行並置運算,即首尾相接得到一個新的String物件。

4.String的常用方法:

  • public int length():獲取一個字串的長度
  • public boolean equals(String s):判斷當前String物件的字元序列是否與引數s指定的String物件的字元序列相同                
  • public boolean startsWith(String s)
  • 判斷當前String物件的字元序列字首是否是引數指定的String物件s的字元序列,例如:

    String tom = "天氣預報,陰有小雨",jerry = "比賽結果,中國隊贏得勝利";

    tom.startsWith(“天氣”)的值是true;

    tom.endsWith("大雨")的值是false,

  • public int compareTo(String s):按字典序與引數s指定的字元序列比較大小。

如果當前String物件的字元序列與s的相同,該方法返回值0,如果大於s的字元序列,該方法返回正值;如果小於s的字元序列,該方法返回負值。

  • public boolean contains(String s):String物件呼叫contains方法判斷當前String物件的字元序列是否包含引數s的字元序列,例如,tom="student",那麼tom.contains("stu")的值就是true,而tom.contains("ok")的值是false。
  • public int indexOf (String str):String物件呼叫方法從當前String物件的字元序列的0索引位置開始檢索首次出現str的字元序列的位置,並返回該位置。如果沒有檢索到,該方法返回的值是–1,其相關方法:

   indexOf(String s ,int startpoint)

   lastIndexOf (String s)

    例如 String tom = "I am a good cat";

              tom.indexOf("a");//值是2

              tom.indexOf("good",2);//值是7

              tom.indexOf("a",7);//值是13

              tom.indexOf("w",2);//值是-1

  • public String substring(int startpoint):字串物件呼叫該方法獲得一個新的String物件,新的String物件的字元序列是複製當前String物件的字元序列中的startpoint位置至最後位置上的字元所得到的字元序列。String物件呼叫substring(int start ,int end)方法獲得一個新的String物件,新的String物件的字元序列是複製當前String物件的字元序列中的start位置至end–1位置上的字元所得到的字元序列。
  • public String trim() :得到一個新的String物件,這個新的String物件的字元序列是當前String物件的字元序列去掉前後空格後的字元序列。

5.字串與基本資料的相互轉化

  • Java.lang包中的Integer類呼叫其類方法:

      public static int parseInt(String s)

      可以將由“數字”字元組成的字串,如“876”,轉化為int型資料,

6.物件的字串表示

  • 在子類中我們講過,所有的類都預設是java.lang包中Object類的子類或間接子類。Object類有一個

                 public String toString()

方法,一個物件通過呼叫該方法可以獲得該物件的字元序列表示。一個物件呼叫toString()方法返回的String物件的字元序列的 一般形式為:建立物件的類的名字@物件的引用的字串表示

7.字串與字元、位元組陣列

  •     字串與字元陣列

String 類的構造方法:

String(char[]);

String(char[],int offset,int length)分別用字元陣列中的全部字元和部分字元建立字串物件

將String物件的部分字元序列存放到陣列中的方法:public void getChars(int start,int end,char c[],int offset )

將String物件的字元序列存放到陣列中的方法:public char[] toCharArray()

 

  • 字串與位元組陣列

String(byte[])用指定的位元組陣列構造一個字串物件。

String(byte[],int offset,int length) 用指定的位元組陣列的一部分,即從陣列起始位置offset開始取length個位元組構造一個字串物件。

public byte[] getBytes()使用平臺預設的字元編碼,將當前String物件的字元序列存放到位元組陣列,並返回陣列的引用。

public byte[] getBytes(String charsetName)使用引數指定字元編碼,將當前String物件的字元序列存放到位元組陣列,並返回陣列的引用。     

  • 使用一個String物件password的字元序列作為密碼對另一個String物件sourceString的字元序列進行加密,操作過程如下。將password的字元序列存放到一個字元陣列中,char [] p = password.toCharArray();

8.正則表示式及字串的替換與分解

  •  正則表示式是一個String物件的字元序列,該字元序列中含有具有特殊意義字元,這些特殊字元稱做正則表示式中的元字元。比如,"\\dcat"中的\\d就是有特殊意義的元字元,代表0到9中的任何一個,"0cat","1cat","2cat",…,"9cat"都是和正則表示式"\\dcat"匹配的字元序列。String物件呼叫public boolean matches(String regex)方法可以判斷當前String物件的字元序列是否和引數regex指定的正則表示式匹配。
  • 字串的替換:public String replaceAll(String regex,String replacement)
  • 字串的分解:public String[] split(String regex)使用引數指定的正則表示式regex做為分隔標記分解出其中的單詞,並將分解出的單詞存放在字串陣列中。

9.StringTokenizer類

  • StringTokenizer類在java.util包中,有兩個常用的構造方法:

StringTokenizer(String s):為String物件s構造一個分析器。使用預設的分隔標記,即空格符、換行符、回車符、Tab符、進紙符做分隔標記。

StringTokenizer(String s, String delim為String物件s構造一個分析器。引數delim的字元序列中的字元的任意排列被作為分隔標記。

10.Scanner類

  • 使用Scanner類從字串中解析程式所需要的資料。
  • Scanner物件可以呼叫方法:useDelimiter(正則表示式);

11.StringBuffer類

  • String物件的字元序列的字元不能被修改、刪除,即String物件的實體是不可以再發生變化的。
  • StringBuffer類的物件的實體的記憶體空間可以自動地改變大小,便於存放一個可變的字元序列。
  • StringBuffer類的常用方法_:
  • StringBuffer append(String s),StringBuffer append(int n),StringBuffer append(Object o)
  • StringBuffer insert(int index, String str) ,public StringBuffer reverse() ,
  • StringBuffer delete(int startIndex, int endIndex),StringBuffer replace(int startIndex,int endIndex,String str):

12.Date與Calendar類

  • Date類的構造方法之一:

Date()使用Date類的無引數構造方法建立的物件可以獲取本地當前時間。例: Date nowTime=new Date();

  • Date物件表示時間的預設順序是:星期、月、日、小時、分、秒、年。
  • Date類的構造方法:Date(long time)
  • 使用Calendar類的static方法 getInstance()可以初始化一個日曆物件,  如:Calendar calendar= Calendar.getInstance();
  • calendar物件可以呼叫方法:

public final void set(int year,int month,int date)

public final void set(int year,int month,int date,int hour,int minute)

public final void set(int year,int month, int date, int hour, int minute,int second)

其作用是將日曆翻到任何一個時間

13.日期的格式化

  • Formatter類的format方法:format(格式化模式, 日期列表)。format方法中的“格式化模式”是一個用雙引號括起的字元序列(字串),該字元序列中的字元由時間格式符和普通字元所構成。例如:"日期:%ty-%tm-%td"
  • 日期列表:format方法中的“日期列表”可以是用逗號分隔的Calendar物件或Date物件。
  • 格式化同一日期:可以在“格式化模式”中使用“<”,比如:"%ty-%<tm-%<td"中的三個格式符將格式化同一日期,即含有“<”的格式符和它前面的格式符格式同一個日期。
  • 如果想用特定地區的星期格式來表示日期中的星期,可以用format的過載方法format (Locale locale,格式化模式,日期列表);

14.Math、BigInteger和Random類

  • Math類在java.lang包中。Math類包含許多用來進行科學計算的類方法,這些方法可以直接通過類名呼叫。
  • java.math包中的BigInteger類提供任意精度的整數運算。
  • Java提供了更為靈活的用於獲得隨機數的Random類(該類在java.util包中)。 Random類的如下構造方法:public Random();public Random(long seed);

 15.數字格式化

  • 程式可以直接使用String類呼叫format方法對數字進行格式化。
  • 格式化模式:format方法中的“格式化模式”是一個用雙引號括起的字元序列(字串),該字元序列中的字元由格式符和普通字元所構成。
  • 值列表:format方法中的“值列表”是用逗號分隔的變數、常量或表示式。
  • 格式化順序:format方法預設按從左到右的順序使用“格式化模式”中的格式符來格式化“值列表”中對應的值,而“格式化模式”中的普通字元保留原樣。
  • %d,%o,%x和%格式符可格式化byte、Byte、short、Short、int、Integer、long和Long型資料。
  • 加號修飾符"+"格式化正整數時,強制新增上正號,例如,%+d將123格式化為"+123"。
  • 資料的寬度就是format方法返回的字串的長度。規定資料寬度的一般格式為“%md”,其效果是在數字的左面增加空格;或"%-md“,其效果是在數字的右面增加空格。
  • %f,%e(%E),%g(%G)和%a(%A)格式符可格式化float、Float、double和Double。

    %f 將值格式化為十進位制浮點數,小數保留6位。%e(%E) 將值格式化為科學記數法的十進位制的浮點數(%E在格式化時將其中的指數符號大寫,例如5E10)。

  • "%.nf"可以限制小數的位數,其中的n是保留的小數位數。

 16.Pattern與Matcher類

  • ①建立模式物件:使用正則表示式regex做引數得到一個稱為模式的Pattern類的例項pattern。模式物件是對正則表示式的封裝。Pattern類呼叫類方法compile(String regex)返回一個模式物件,其中的引數regex是一個正則表示式, 稱為模式物件使用的模式。
  • ②得到匹配物件:模式物件pattern呼叫matcher(CharSequence input)方法返回一個Matcher物件matcher,稱為匹配物件