數(shù)據(jù)庫系統(tǒng)課件:第3章 常用數(shù)據(jù)類型的用法_第1頁
數(shù)據(jù)庫系統(tǒng)課件:第3章 常用數(shù)據(jù)類型的用法_第2頁
數(shù)據(jù)庫系統(tǒng)課件:第3章 常用數(shù)據(jù)類型的用法_第3頁
數(shù)據(jù)庫系統(tǒng)課件:第3章 常用數(shù)據(jù)類型的用法_第4頁
數(shù)據(jù)庫系統(tǒng)課件:第3章 常用數(shù)據(jù)類型的用法_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第3章 常用數(shù)據(jù)類型的用法3.1 字符串3.2 數(shù)組3.3 枚舉3.4 泛型3.5 泛型集合3.6 日期與時間處理3.7 數(shù)學(xué)運算3.8 隨機數(shù)3.1 字符串String類(string) :string myString = some text; string s2 = new string(a,2); /結(jié)果為aaToString()方法String.Empty 表示空字符串String類的表示方法:string str = C:testfirst.cs string str = C:testfirst.cs 取字符串中的某個字符的方法:string myString = some tex

2、t;char chFirst = myString2; /結(jié)果為m 3.1 字符串字符串比較方法string.Compare(string s1,string s2) 如果s1大于s2,結(jié)果為1;如果s1等于s2,結(jié)果為0;如果s1小于s2,結(jié)果為-1。string.Compare(string s1,string s2,bool ignoreCase) ignoreCase確定是否區(qū)分大小寫比較兩個字符串是否相等,使用:Equals方法=3.1 字符串 字符串查找Contains方法:用于查找一個字符串中是否包含指定的子字符串。語法為: public bool Contains( strin

3、g value ) 例如:string str1 = this is a string.; bool b=str1.Contains(is );IndexOf方法:求某個字符或者子串在字符串中出現(xiàn)的位置。兩種最常用的重載形式: public int IndexOf(string s ) public int IndexOf(string s, int startIndex )LastIndexOf方法:LastIndexOf方法的用法與IndexOf方法相同,查找最后一次出現(xiàn)的位置。 3.1 字符串例如:Console.WriteLine(str1.IndexOf(is); /結(jié)果為2(注意序

4、號從0開始)Console.WriteLine(str1.LastIndexOf(is); /結(jié)果為5IndexOfAny方法:查找某個字符串中是否包含某些字符(多個不同的字符)。 常用語法:public int IndexOfAny(char anyOf ) 例如: string s1 = 123abc123abc123; char c = a, b, 5, 8 ; int x = s1.IndexOfAny(c); /x結(jié)果為33.1 字符串截取字符串Substring(int startIndex,int count) 截取字符串從startIndex位開始,截取長度為count的字符串

5、 例如: string str=“abc123”; string ss = str.Substring(1,4); Console.WriteLine(ss);/bc12 3.1 字符串刪除指定數(shù)量的字符Remove(int startIndex,int count) 例如:string str1 = this is a string.“ Console.WriteLine(str1.Remove(1,2); /結(jié)果為ts is a string 字符串替換 Replace (string oldStr,string newStr) 例如:string str1 = this is a str

6、ing.“ Console.WriteLine(str1.Replace(is,xy); /結(jié)果為thxy xy a string3.1 字符串插入字符串 例如:string s1 = abcdabcd; string s2 = s1.Insert(2, 12);/結(jié)果為ab12cdabcd“從字符串開頭或結(jié)尾刪除指定的字符 :利用TrimStart刪除字符串首部空格,利用TrimEnd刪除字符串尾部空格,利用Trim刪除字符串首部和尾部空格。例如:string s1 = this is a book;string s2 = that is a pen;string s3 = is a pen

7、 ;Console.WriteLine(s1.TrimStart(); /刪除首部空格Console.WriteLine(s2.TrimEnd(); /刪除尾部空格Console.WriteLine(s3.Trim(); /刪除首部和尾部空格3.1 字符串字符串的合并與拆分Join方法:在數(shù)組的每個元素之間串聯(lián)指定的分隔符,從而產(chǎn)生單個串聯(lián)的字符串。 語法為: public static string Join(string separator, string value )Split方法:將字符串按照指定的一個或多個字符進行分離,從而得到一個字符串?dāng)?shù)組。 常用語法為: public stri

8、ng Split( params char separator )字符串的合并和拆分舉例例如:string sArray1 = 123, 456, abc ;string s1 = string.Join(, sArray1); /結(jié)果為123,456,abcstring sArray2 = s1.Split(,); /sArray2得到的結(jié)果與sArray1相同string s2 = abc 12;34,56;string sArray3 = s2.Split(, ;, ); /分隔符為逗號、分號、空格Console.WriteLine(string.Join(Environment.New

9、Line,sArray3);輸出結(jié)果:abc1234563.1 字符串ToUpper大寫ToLower小寫例如:string s1 = This is a string;string s2 = s1.ToUpper( ); /s2結(jié)果為THIS IS A STRINGstring s3 = Console.ReadLine( );if (s3.ToLower( ) = yes) Console.WriteLine(OK);3.2 String和StringBuilderString類實際上表示的是一系列不可變的字符。說其實例是“不可變的”,是因為無法直接修改給該字符串分配的堆中的字符串。例如,

10、在myString的后面接上另一個字符串: myString += and a bit more; 其實際操作并不是在原來myString所占內(nèi)存空間的后面直接附加上第二個字符串,而是返回一個新String實例,即重新為新字符串分配內(nèi)存空間。StringBuilder類位于System.Text名稱空間下,使用StringBuilder類每次重新生成新字符串時不是再生成一個新實例,而是直接在原來字符串占用的內(nèi)存空間上進行處理,而且它可以動態(tài)的分配占用的內(nèi)存空間大小。StringBuilder類用法舉例【例3-1】StringBuilder類的基本用法。using System;using Sy

11、stem.Text;namespace StringBuilderExample class Program public static void Main( ) StringBuilder sb = new StringBuilder( ); sb.Append(string1); sb.AppendLine(string2); sb.Append(string3); string s = sb.ToString( ); Console.WriteLine(s); Console.ReadLine( ); 3.3 數(shù)組 數(shù)組用于存儲同一種類型的數(shù)據(jù)。數(shù)組是一種引用類型,而不是值類型。數(shù)組是按

12、照數(shù)組名、數(shù)據(jù)元素的類型和維數(shù)來描述的。C#中可以有一維數(shù)組、多維數(shù)組、交錯數(shù)組。1.數(shù)組的聲明與初始化 聲明數(shù)組時,既可以一開始就指定數(shù)組元素的個數(shù),也可以一開始不指定元素個數(shù),而是在使用數(shù)組元素前動態(tài)地指定元素個數(shù)。例如:int a = new int30; string mystring = first,second,third;數(shù)組的聲明語法舉例 數(shù)組類型語法例子一維數(shù)組數(shù)據(jù)類型 數(shù)組變量;int myArray;二維數(shù)組數(shù)據(jù)類型, 數(shù)組變量;int, myArray;三維數(shù)組數(shù)據(jù)類型, 數(shù)組變量;int, myArray;交錯數(shù)組數(shù)據(jù)類型 數(shù)組變量;int myArray;數(shù)組的秩與

13、數(shù)組長度2.數(shù)組的秩與數(shù)組長度數(shù)組的秩(rank)是指數(shù)組的維數(shù),例如一維數(shù)組秩為1,二維數(shù)組秩為2。數(shù)組長度是指數(shù)組中所有元素的個數(shù)。例如:int a = new int10; /數(shù)組長度為10int, b = new int3, 5; /數(shù)組長度為3*5=15,其中第0維長度為3,第1維長度為5數(shù)組用法舉例【例3-2】編寫一個控制臺應(yīng)用程序,定義一個二維數(shù)組,分別輸出數(shù)組的秩、數(shù)組長度以及數(shù)組中的每個元素值。數(shù)組3.一維數(shù)組在C#中,數(shù)組的下標默認是從0開始索引的。Length屬性表示數(shù)組的長度。4.多維數(shù)組多維數(shù)組指維數(shù)大于1的數(shù)組,常用的是二維數(shù)組和三維數(shù)組。C#語言支持兩種類型的二維

14、數(shù)組,一種是二維矩形數(shù)組,另一種是二維交錯數(shù)組。對于二維矩形數(shù)組,數(shù)組中的每一行都有相同的列數(shù)。例如:int, n2 = new int, 1, 2, 3, 4, 5, 6 ;數(shù)組5.交錯數(shù)組交錯數(shù)組相當(dāng)于一維數(shù)組的每一個元素又是一個數(shù)組,也可以把交錯數(shù)組稱為“數(shù)組的數(shù)組”。例如:int n1 = new int2 new int 2,4,6, new int 1,3,5,7,9;交錯數(shù)組的每一個元素既可以是一維數(shù)組,也可以是多維數(shù)組。交錯數(shù)組用法舉例【例3-3】交錯數(shù)組的用法。數(shù)組6.動態(tài)改變數(shù)組的大小Resize方法 public static void Resize( ref T arr

15、ay, int newSize ) 這是一種泛型表示形式。其中T表示數(shù)組類型,array為要調(diào)整大小的一維數(shù)組,該數(shù)組從零開始;如果為null則新建具有指定大小的數(shù)組。如果newSize大于舊數(shù)組的Length,則分配一個新數(shù)組,并將所有元素從舊數(shù)組復(fù)制到新數(shù)組。如果newSize小于舊數(shù)組的Length,則分配一個新數(shù)組,并將元素從舊數(shù)組復(fù)制到新數(shù)組直到新數(shù)組被填滿為止;舊數(shù)組中的剩余元素將被忽略。如果 newSize與舊數(shù)組的 Length相等,則此方法不執(zhí)行任何操作。動態(tài)改變數(shù)組的大小舉例【例3-4】演示如何動態(tài)改變一維數(shù)組的大小。數(shù)組7.數(shù)組元素的排序與查找C#語言中還提供了Sort和

16、Reverse這樣的靜態(tài)方法,這些方法用快速排序算法將一維數(shù)組中的元素按照升序或降序排列。還可以方便地查找指定的元素。例如Contains方法和IndexOf方法等。數(shù)組排序和查找舉例【例3-5】一維數(shù)組的排序和查找。數(shù)組的統(tǒng)計以及數(shù)組和字符串間的轉(zhuǎn)換利用數(shù)組的Average方法、Sum方法、Max方法和Min方法可以求數(shù)組中所有元素的平均值、求所有元素的和、最大值和最小值。對于字符串?dāng)?shù)組,可以直接利用字符串的Join方法和Split方法實現(xiàn)字符串和字符串?dāng)?shù)組之間的轉(zhuǎn)換。數(shù)組元素統(tǒng)計和字符串轉(zhuǎn)換舉例【例3-6】演示如何統(tǒng)計數(shù)組中的元素以及如何實現(xiàn)數(shù)組和字符串之間的轉(zhuǎn)換。3.3 枚舉枚舉(enu

17、m)是一組命名常量的集合,稱為枚舉成員列表。它可以為一組在邏輯上密不可分的整數(shù)值提供便于記憶的符號,從而使代碼更清晰,也易于維護。聲明enum類型變量的語法為: 附加聲明 訪問修飾符 enum 名稱:數(shù)據(jù)類型 枚舉列表 例如:enum daysMon,Tue,Wed,Thu,F(xiàn)ri,Sat 注意:enum days:byteX1=255,X2 /錯誤3.4 泛型泛型(Generic)是具有占位符(類型參數(shù))的類、結(jié)構(gòu)、接口和方法,它與普通類的區(qū)別是泛型多了一個或多個表示類型的占位符,這些占位符用尖括號括起來。例如:public class MyClass public T MyProp get

18、; set; /定義屬性MyProp public void Print( ) Console.WriteLine(MyProp); 泛型【例3-8】演示泛型的定義與用法。可空泛型可空類型是泛型結(jié)構(gòu)Nullable的實例。 例如,Nullable讀作“可以為null的Int32”,可以將其賦值為任一個32位整數(shù)值,也可以將其賦值為null值??煽疹愋途哂幸韵绿匦裕?(1)可空類型表示可被賦值為null值的值類型變量。但是要注意,由于引用類型已支持null值,因此不能用該類型創(chuàng)建基于引用類型的null類型。 (2)語法“T?”是泛型“Nullable”的簡寫,此處的T為值類型。這兩種形式可以互換

19、。如Nullable也可以寫為int?。 (3)程序員可以使用泛型的HasValue和Value只讀屬性測試是否為空和檢索值,如果此變量包含值,則HasValue屬性返回True;如果此變量的值為空,則返回False。3.5 泛型集合在System.Collections.Generic命名空間下,提供了常用的泛型集合類。泛型集合類非泛型集合類泛型集合用法舉例ListArrayListList dinosaurs = new List( );DictionaryHashtableDictionary d = new Dictionary( );d.Add (txt, notepad.exe);

20、QueueQueueQueue q = new Queue( );q.Enqueue(one);StackStackStack s = new Stack( );s.Push(one);s.Pop( );SortedListSortedListSortedList list = new SortedList( );list.Add (txt, notepad.exe); list.TryGetValue(tif, out value)哈希集合HashSetHashSet泛型類提供了高性能的數(shù)學(xué)集合運算,一個HashSet對象的容量是指該對象可以容納的元素個數(shù)。常用方法:UnionWith方法:

21、并集或Set加法IntersectWith方法:交叉ExceptWith方法:set減法SymmetricExceptWith方法:余集列表和排序列表List泛型類表示可通過索引訪問的強類型對象列表,該類提供了對列表進行搜索、排序和操作的方法。常用方法如下:Add方法:將指定值的元素添加到列表中。Insert方法:在列表的中間插入一個新元素。Contains方法:測試該列表中是否存在某個元素。Remove方法:從列表中移除帶有指定鍵的元素。Clear方法:移除列表中的所有元素。SortedList排序列表,用法與List類似。列表和排序列表舉例【例3-9】演示泛型列表的定義與用法。鏈表Link

22、edList為雙向鏈表。LinkedList對象中的每個節(jié)點都屬于LinkedListNode類型。每個節(jié)點又指向其Next節(jié)點和Previous節(jié)點。LinkedList接受 null引用作為引用類型的有效Value屬性,并且允許重復(fù)值。如果LinkedList為空,則First和Last屬性為null。字典和排序字典Dictionary泛型類提供了從一組鍵到一組值的映射。字典中的每個添加項都由一個值及其相關(guān)聯(lián)的鍵組成,通過鍵來檢索值。該泛型類提供的常用方法如下。Add方法:將帶有指定鍵和值的元素添加到字典中。TryGetValue方法:獲取與指定的鍵相關(guān)聯(lián)的值。ContainsKey方法:

23、確定字典中是否包含指定的鍵。Remove方法:從字典中移除帶有指定鍵的元素。隊列Queue泛型類表示對象的先進先出集合。隊列在按接收順序存儲消息方面非常有用,存儲在隊列中的對象在一端插入,從另一端移除。隊列可以保存null值并且允許有重復(fù)的元素。常用方法如下:Enqueue方法:將指定元素插入列尾。Dequeue方法:隊列首元素出列。堆棧Stack泛型類表示同類型實例的大小可變的后進先出(LIFO)集合。堆??梢员4鎛ull值并且允許有重復(fù)值。常用方法如下:Push方法:將指定元素插入棧頂。Pop方法:彈出棧頂元素。3.6日期與時間處理對日期和時間處理的常用類是DateTime類和TimeSpan類。DateTime類表示范圍在0001年1月1日午夜12:00:00到9999年12月31日晚上11:59:59之間的日期和時間,最小時間單位等于100納秒。TimeSpan類表示一個時間間隔。其范圍在Int64.MinValue到Int64.MaxValue之間。3.6日期與時間處理舉例【例3-10】DateTime類的用法舉例。【例3-11】顯示當(dāng)前日期和時間。3.7 數(shù)學(xué)運算Ma

溫馨提示

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

評論

0/150

提交評論