第五章 字符串_第1頁
第五章 字符串_第2頁
第五章 字符串_第3頁
第五章 字符串_第4頁
第五章 字符串_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第五章 字符串高級語言程序設計高級語言程序設計(Java) http:/5.1字符串概述l Java中沒有內置的字符串數據類型,而是在標準庫中包含預定義的字符串類。l 字符串是字符的序列,字符串中字符的位置從0開始計算。l 程序中需要用到的字符串可以分為兩大類,一類是創(chuàng)建之后不會再做修改和變動的字符串常量String類;另一類是創(chuàng)建之后允許再做更改和變化的字符串變量StringBuffer類。l StringTokenizer類側重于對字符串的分割。高級語言程序設計高級語言程序設計(Java) http:/String類v Java使用java.lang包中的String類來創(chuàng)建一個字符串變量

2、,因此字符串變量是類類型變量,是一個對象。 字符串常量l 使用“”定義字符串,使用定義字符。l Java會自動為字符串常量生成一個String類的對象,所以可以直接初始化String對象,如:string s = “Hello World!”高級語言程序設計高級語言程序設計(Java) http:/ 創(chuàng)建字符串對象l 使用String類,可以很方便的創(chuàng)建一個字符串對象。格式:String 字符串對象名 = new String(“字符串值”);String s=new String(we are students);String tom=String(s);l String類有11個構造方法,

3、詳細情況可以參看JDK的幫助文檔(jdk-1_5_0-doc.zip )。u 下載地址:http:/ http:/l String是恒定的:所有操作都不會改變原String對象,是將操作的結果以一個新的對象返回。public class Stringer Static String upcase(String s) return s.toUpperCase(); public static void main(String args) String q = new string(“hello”); System.out.println(q); String qq = upcase(q); Sy

4、stem.out.println(qq); System.out.println(q); 輸出輸出:hello輸出輸出:HELLO輸出輸出:hello高級語言程序設計高級語言程序設計(Java) http:/5.2String類的常用方法String str1 = “hello,java!”;System.out.println(str1.length();String str2 = “你好,java!”;System.out.println(str2.length();輸出:12輸出:8l public int length():獲取字符串的長度。 高級語言程序設計高級語言程序設計(Java

5、) http:/l 字符串比較 比較過程:如果當前字符串與s完全相同,該方法返回值0;如果當前字符串中某個位置上的字符大于s字符串中對應位置的字符,compareTo方法返回正值,反之則compareTo方法返回負值。 u 用compareTo()方法,按字典順序比較 public int compareTo(String s) 多數情況下比較字符在Unicode編碼表中的位置。字符串長度不等且其中一字符串是另一字符串的子串時,則比較長度。高級語言程序設計高級語言程序設計(Java) http:/public class CompareTest public static void main(

6、String args)String str1 = new String(helloworld);String str2 = new String(hello);System.out.println(pareTo(str2);String str3 = new String(helle);System.out.println(pareTo(str1);System.out.println(pareTo(str3);String str4 = new String(Helle);System.out.println(pareTo(str4); 輸出:5輸出:-10輸出:10輸出:32高級語言程序

7、設計高級語言程序設計(Java) http:/u 不要用“=”來檢測兩個字符串是否相等,它只能判斷兩個字符串是否存儲在同一位置。u equals()方法用來判斷兩個字符串是否相同。public boolean equals(String s)l 字符串連接u 使用concat()方法 public String concat(String str)u 使用符號+String str3 = str1.concat(str2);System.out.println(str3);String str1 = “123”;String str2 = “456”; String str3 = str1 +

8、 str2;System.out.println(str3);123456高級語言程序設計高級語言程序設計(Java) http:/l 提取部分字符串 u charAt()方法:提取index位置上的一個字符。public char charAt(int index)u subString()方法:獲取子串public String substring(int beginIndex )public String substring(int beginIndex, int endIndex )高級語言程序設計高級語言程序設計(Java) http:/String str = new String

9、(“hello”);str = str.subString(0,4)+”!”System.out.println(str); String str = new String(“helloworld”);str = str.subString(0,5)+” ”+str.subString(6)+” !”System.out.println(str); 結果:hell!結果:hello world !高級語言程序設計高級語言程序設計(Java) http:/l 去掉字符串前后的空格l public String trim()String str3 = “ 1 2 3 System.out.prin

10、tln(str3.trim();輸出:1 2 3 字符串與基本數據的相互轉換l “數字”格式的字符串可以轉化為相應的基本數據類型。l Byte、Short、Integer,Long、Float、Double類調相應的類方法來實現轉換。高級語言程序設計高級語言程序設計(Java) http:/u public static byte parseByte(String s)u public static short parseShort(String s)u public static int parseInt(String s)u public static long parseLong(Str

11、ing s)u public static double parseDouble(String s)u public static double parseDouble(String s)String str = “1234”int n = Integer.parseInt(str);n的值為1234高級語言程序設計高級語言程序設計(Java) http:/l 使用String類的類方法valueOf()將數字轉化為字符串。u public String valueOf(byte n)u public String valueOf(int n)u public String valueOf(l

12、ong n)u public String valueOf(float n)u public String valueOf(double n)double num = 1234.56;System.out.println(String.valueOf(num);輸出為1234.565.3字符串與基本數據的轉化高級語言程序設計高級語言程序設計(Java) http:/5.4對象的字符串表示u Object類有一個public 方法toString(),一個對象通過調用該方法可以獲得該對象的字符串表示。public class DataToString public static void mai

13、n(String args) DataToString obj=new DataToString(); System.out.println(obj.toString(); System.out.println(Integer.toString(50); System.out.println(new Double(50.123).toString(); DataToStringad3ba45050.123高級語言程序設計高級語言程序設計(Java) http:/5.5StringTokenizer 類 StringTokenizer類的構造方法l StringTokenizer(String

14、s):為字符串s構造一個分析器,使用默認的分隔符集合(如:空格符、換行符、Tab符等)。l StringTokenizer(Strings,String delim):為字符串s構造一個分析器,是用參數delim指定的字符作為分隔符。l StringTokenizer(String s,String delim,boolean returnDelims):使用delim提供的參數作為分隔符,當returnDelims為true是,將分隔符作為標識返回。高級語言程序設計高級語言程序設計(Java) http:/ 使用StringTokenizer對象l String nextToken():逐個

15、獲取字符串中的語言符號(單詞),每當調用nextToken()時,都將在字符串中獲得下一個語言符號,通常用while循環(huán)來逐個獲取語言符號。l hasMoreTokens():用于控制循環(huán),只要字符串中還有語言符號,該方法就返回true,否則放回false。l countTokens():獲得字符串中一共有多少個語言符號。高級語言程序設計高級語言程序設計(Java) http:/import java.util.*;public class Example public static void main(String args) String s = we are stud,ents; Str

16、ingTokenizer fenxi = new StringTokenizer(s, ,); /空格和逗號做分 int number=fenxi.countTokens(); while(fenxi.hasMoreTokens() String str = fenxi.nextToken(); System.out.println(str); System.out.println(還剩+fenxi.countTokens()+個單詞); System.out.println(s共有單詞:+number+個); 高級語言程序設計高級語言程序設計(Java) http:/5.7StringBuf

17、fer類 v StringBuffer類能創(chuàng)建可修改的字符串序列。 StringBuffer類的構造方法l StringBuffer():創(chuàng)建空的StringBuffer對象,初始化緩沖區(qū)為16字符的長度。l StringBuffer(int len):創(chuàng)建指定字符緩沖區(qū)長度len的StringBuffer對象。l StringBuffer(String str):創(chuàng)建具有初值為字符串str的StringBuffer對象,除去給定的字符串str所占的空間外,還提供16個字符的空間。高級語言程序設計高級語言程序設計(Java) http:/ StringBuffer類的常用方法l 獲取Strin

18、gBuffer對象的長度與容量信息。u public int length():獲得當前字符串緩沖區(qū)中所包含的字符數。u public int capacity():獲得當前字符串緩沖區(qū)的容量大小。高級語言程序設計高級語言程序設計(Java) http:/public class BufferStrings public static void main(String args)StringBuffer strb1 = new StringBuffer();StringBuffer strb2 = new StringBuffer(25);StringBuffer strb3 = new St

19、ringBuffer(This is java !);System.out.print(strb1.length()+t);System.out.print(strb1.capacity()+n);System.out.print(strb2.length()+t);System.out.print(strb2.capacity()+n);System.out.print(strb3.length()+t);System.out.print(strb3.capacity()+n); 0 016160 0252514143030高級語言程序設計高級語言程序設計(Java) http:/l Str

20、ingBuffer對象的字符串擴充u append方法可以將其它Java類型數據轉化為字符串后,再追加到StringBuffer對象中。u insert方法將一個字符串插入另一個字符串中,并返回當前對象的引用。u 無論是擴充還是插入字符串,只要字符串緩沖區(qū)的長度充足,緩沖區(qū)的長度就不會變。u 當附加或插入字符串而使得字符串緩沖區(qū)容量不足時,系統(tǒng)會自動分配更多的空間。高級語言程序設計高級語言程序設計(Java) http:/l public char charAt(int index)u 得到參數n指定的置上的單個字符。u n的值必須是非負的,并且小于當前對象實體中字符串序列的長度。l publ

21、ic void setCharAt(int index, char ch)u 將當前StringBuffer對象實體中的字符串位置n處的字符用參數ch指定的字符替換。u n的值必須是非負的,并且小于當前對象實體中字符串序列的長度。高級語言程序設計高級語言程序設計(Java) http:/l StringBuffer delete(int startIndex, int endIndex)u 從當前StringBuffer對象實體中的字符串中刪除一個子字符串,并返回當前對象的引用。u 要刪除的子字符串從startIndex到endIndex-1。public class BufferString

22、s public static void main(String args)StringBuffer strb1 = new StringBuffer(This is java !);StringBuffer strb2 = strb1.delete(1,3);System.out.println(strb1);System.out.println(strb2);System.out.println(strb1.delete(1,2); This is java !Ts is java !Tis java !高級語言程序設計高級語言程序設計(Java) http:/5.8正則表達式 正則表達式

23、與模式匹配l 正則表達式u 一個正則表達式是含有一些具有特殊意義字符的字符串,這些特殊字符稱作正則表達式中的元字符。比如:“dok”就是一個正則表達式,其中d就是有特殊意義的元字符,代表0到9中的任何一個。u 一個正則表達式也稱作一個模式。u 和一個模式匹配的字符串稱作匹配模式字符串,也稱作模式匹配字符串。字符串“9ok”和“1ok”都是模式匹配字符串高級語言程序設計高級語言程序設計(Java) http:/l 模式匹配u 模式匹配就是檢索和指定模式匹配的字符串。u 進行模式匹配的類在java.util.regex包中。u 建立模式對象 public static Pattern compile(String regex) public static Pattern compile(String regex, int flags) 如果參數patter指定的正則表達式有錯,complie方法將拋出異常:PatternSyntaxException。Pattern patter = Ppile(Ad);高級語言程序設計高級語言程序設計(Java) http:/ 參數flags可以取下列有效值:Pattern.CASE_INSENSITIVE:不區(qū)分大小寫模式。 Pattern.MULTILINE:多行模式 ,在輸入序列的開頭和結尾

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論