MES開發(fā)與應用 課件 1.1.9 工業(yè)管理軟件系統(tǒng)技術棧介紹-C#常用類_第1頁
MES開發(fā)與應用 課件 1.1.9 工業(yè)管理軟件系統(tǒng)技術棧介紹-C#常用類_第2頁
MES開發(fā)與應用 課件 1.1.9 工業(yè)管理軟件系統(tǒng)技術棧介紹-C#常用類_第3頁
MES開發(fā)與應用 課件 1.1.9 工業(yè)管理軟件系統(tǒng)技術棧介紹-C#常用類_第4頁
MES開發(fā)與應用 課件 1.1.9 工業(yè)管理軟件系統(tǒng)技術棧介紹-C#常用類_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.1系統(tǒng)技術棧介紹——C#常用類String類高效的StringBuilder類DateTime類Random類知識回顧集合的概述非泛型集合泛型集合學習目標通過本節(jié)學習可以:重點學習String類重點學習高效的StringBuilder類掌握DateTime類掌握Random類了解字符串的不可變性01String類String類的初始化字符串就是指一連串的字符,表示字符串的類為string類。string字符串中可以包含任意字符,這些字符必須包含在一對英文雙引號""之內,例如"HelloWorld"。在使用string字符串之前首先需要對string類進行初始化。初始化的方式如下:使用字符串常量直接初始化一個string對象string類的初始化stringmessage="Hello,world!";String類的初始化使用string類的構造方法初始化字符串對象,常用的兩個構造方法如下:方法名稱功能描述string(Char[]charArray)將string類的新實例初始化為由Unicode字符數(shù)組指示的值。string(Charch,intnum)將string類的新實例初始化為由重復指定次數(shù)的指定Unicode字符指示的值。string類的初始化String類的初始化classProgram{staticvoidMain(string[]args){char[]chs={'1','2','3'};stringstr1=newstring(chs);//使用字符'a'重復5次創(chuàng)建字符串"aaaaa"stringstr2=newstring('a',5);Console.WriteLine("str1="+str1);Console.WriteLine("str2="+str2);Console.ReadKey();}}使用字符數(shù)組初始化一個字符串"123"使用new關鍵字創(chuàng)建字符串string類的初始化String類的初始化注意在程序中,string和String類都可以創(chuàng)建字符串對象。不同的是,string是C#語言中用來表示字符串的類型,而String類型是.NETFramework通用類型系統(tǒng)中用來表示字符串的類型。在程序開發(fā)過程中,這兩種類型之所以都能表示字符串,是因為程序編譯時,C#語言中的string類型會被編譯成.NETFramework通用類型系統(tǒng)的String類型。String類的初始化多學一招在編碼過程中,定義string類型的變量后如果不需要立即對其進行初始化,一般會將其初始化為一個空字符串。.NET平臺中提供了一個空字符串常量String.Empty,該常量可以代替上述空字符串。由于字符串拘留池機制,使用空字符串(“”)和使用String.Empty是同一個對象,因此,這兩種空字符串的定義是一樣的。stringstr1="";stringstr2="";stringstr1=String.Empty;stringstr2=String.Empty;字符串的不可變性字符串的不可變性字符串的不可變性指的是字符串對象一旦創(chuàng)建,就無法對其進行修改。例如,有一個字符串“abc”,如果對其進行修改,其內存就會發(fā)生變化。字符串的不可變性多學一招在代碼編寫過程中,有時需要創(chuàng)建多個字符串對象,由于字符串具有不可變性,因此這些字符串對象對應的值都會占用內存空間。為此,.NET框架的底層提供了一種機制,當一個字符串已經被創(chuàng)建,那么以后每次創(chuàng)建相同值的字符串時會直接引用他的地址值,而無需為自己的值開辟新的內存空間。這種機制稱為字符串拘留池機制。字符串拘留池機制是由.NET框架來完成的,不用人為的管理,這樣可以提高字符串使用的效率。字符串與字符數(shù)組字符串與字符數(shù)組在程序開發(fā)中,為了方便訪問字符串中的某個字符,可以將字符串看作一個char類型的數(shù)組,即字符數(shù)組。需要注意的是,由于字符串是不可變的,str字符串只能看作是只讀的字符數(shù)組。同字符數(shù)組類似,字符串可以通過Length屬性來獲取長度。字符串與字符數(shù)組字符串與字符數(shù)組namespaceProgram02{classProgram{staticvoidMain(string[]args){stringstr=“歡迎來到深圳職業(yè)技術學院";Console.WriteLine(str[0]);Console.WriteLine(str[5]);Console.WriteLine(str[13]);Console.ReadKey();}}}初始化字符串變量str通過索引的形式獲取字符串中對應的字符字符串與字符數(shù)組字符串與字符數(shù)組staticvoidMain(string[]args){stringstr="歡迎來到深圳職業(yè)技術學院";for(inti=0;i<str.Length;i++){Console.WriteLine(str[i]);}Console.ReadKey();}通過Length屬性獲取字符串的長度通過索引獲取字符串中對應的字符,并將字符輸出到控制臺上String類的靜態(tài)方法string類的靜態(tài)方法在程序開發(fā)中,經常需要在不實例化字符串的情況下實現(xiàn)某些功能,比如判斷字符串是否為空、格式化字符串。為此string類中提供了許多靜態(tài)方法。string類中提供的靜態(tài)方法。方法聲明功能描述intCompare(stringstr1,stringstr2)比較兩個字符串是否相等stringFormat(stringstr,objectobj)格式化字符串boolIsNullOrEmpty(stringstr)判斷一個字符串是否為空或長度為0stringJoin(stringstr,string[]strarr)使用指定字符連接字符串數(shù)組String類的靜態(tài)方法Compare()方法Compare()方法:用于比較兩個字符串是否相等。該方法有兩個string類型參數(shù),用于接收進行對比的字符串。如果第一個字符串大于第二個字符串,則返回一個大于0的int整數(shù);如果兩個字符串相同,則返回0;若第一個字符串小于第二個字符串,則返回一個小于0的int整數(shù)。字符串比較時,采用了字典排序法,所謂字典排序法就是首先比較兩個字符串的第一個字符,第一個字符大的字符串就大,如果兩個字符串的第一個字符相同,那么就比較第二個字符,依此類推,最終得到較大的字符串。String類的靜態(tài)方法字符串與字符數(shù)組namespaceProgram04{classProgram{staticvoidMain(string[]args){stringstr1="abcdefg";stringstr2="abc";stringstr3="bbc";stringstr4="abc";Console.WriteLine(string.Compare(str1,str2));Console.WriteLine(string.Compare(str2,str3));Console.WriteLine(string.Compare(str2,str4));Console.ReadKey();}}}定義了4個字符串對比字符串str1和str2是否相等String類的靜態(tài)方法Format()方法Format()方法:格式化字符串。該方法是通過占位符“{0}、{1}”的形式返回一個拼接的字符串。namespaceProgram05{classProgram{staticvoidMain(string[]args){stringstr="abcdef";stringres=string.Format("字符串{0}包含{1}個字符",str,str.Length);Console.WriteLine(res);Console.ReadKey();}}}占位符{0}是第2個參數(shù)str的值占位符{1}是第3個參數(shù)str.Length的值String類的靜態(tài)方法IsNullOrEmpty()方法IsNullOrEmpty()方法:用來判斷字符串是否為空或長度是否為0,當字符串為空或者長度為0時,該方法的返回值為true,否則返回值為false。staticvoidMain(string[]args){strings1=null;strings2="";strings3="abc";Check(s1,"s1");……}staticvoidCheck(strings,stringname){if(string.IsNullOrEmpty(s)){Console.WriteLine("{0}是為空或長度為0",name);}}判斷傳入的字符串s是否為空String類的靜態(tài)方法Join()方法Join()方法:用于使用指定的分隔符,將字符串數(shù)組中的元素串聯(lián)起來。classProgram{staticvoidMain(string[]args){string[]strs={"字符串","使用豎線","連接"};stringres=string.Join("|",strs);Console.WriteLine(res);Console.ReadKey();}}使用分隔符"|"將字符串數(shù)組str中的元素串聯(lián)起來String類的實例方法string類的實例方法除靜態(tài)方法外,string類中還提供了一些方法,這些方法需要先創(chuàng)建實例對象才能被調用,即string類的實例方法。方法聲明功能描述boolContains(stringstr)判斷當前字符串中是否包含指定字符串boolEndsWith(stringstr)判斷當前字符串是否使用指定字符串結尾intIndexOf(charch)獲得指定字符或字符串在當前字符串中的位置string[]Split(char[]charArray)將字符串以某種字符分隔stringSubstring(intindex)從index索引處截取當前字符串char[]ToCharArray()將當前字符串轉換為字符數(shù)組stringToUpper()將當前字符串中的英文轉化成大寫stringTrim()去除字符串兩邊空格String類的實例方法Contains()方法namespaceProgram08{classProgram{staticvoidMain(string[]args){stringstr1="這是一個測試字符串";stringstr2="測試";if(str1.Contains(str2)){Console.WriteLine("str2包含在str1中");}else{Console.WriteLine("str1不包含str2");}Console.ReadKey();}}}調用Contains()方法判斷字符串str1是否包含str2String類的實例方法EndsWith()方法namespaceProgram09{classProgram{staticvoidMain(string[]args){Console.WriteLine("請輸入mp3文件名");stringinput=Console.ReadLine();//獲取用戶從控制臺輸入的字符串if(input.EndsWith(".mp3")){Console.WriteLine("文件格式正確");}else{Console.WriteLine("輸入文件不是mp3格式");}Console.ReadKey();}}}調用EndsWith()方法判斷字符串input是否以“.mp3”結尾String類的實例方法IndexOf()方法namespaceProgram10{classProgram{staticvoidMain(string[]args){stringstr="abcdefefghefg";//查找第一個'e'字符的位置intindex=str.IndexOf("e");Console.WriteLine("找到e,索引為{0}",index);Console.ReadKey();}}}通過IndexOf()方法查詢字符串“e”的位置并復制給變量indexString類的實例方法Split()方法namespaceProgram11{classProgram{staticvoidMain(string[]args){stringstr="Ihaveadream";string[]strs=str.Split('');Console.WriteLine("一共有{0}個單詞,分別是:",strs.Length);for(inti=0;i<strs.Length;i++){Console.WriteLine("第{0}個單詞是:{1}",i+1,strs[i]);}Console.ReadKey();}}}調用Split()方法通過‘’分隔符將字符串str分割為一個字符串數(shù)組strsString類的實例方法Substring()方法namespaceProgram12{classProgram{staticvoidMain(string[]args){//注意C#中的轉義字符,這里加上@取消轉義stringpath=@"D:\workspeace\chapter8\Program11\program.cs";intindex=path.IndexOf('.');//從'.'的下一個位置開始截取stringfileType=path.Substring(index+1);Console.WriteLine("文件后綴名為:{0}",fileType);Console.ReadKey();}}}通過IndexOf()方法獲取第一個字符‘.’的索引通過Substring()方法從指定位置截取文件名后綴名String類的實例方法ToCharArray()方法classProgram{staticvoidMain(string[]args){stringstr="abcdef";char[]chs=str.ToCharArray();for(inti=0;i<chs.Length/2;i++){chartemp=chs[i];chs[i]=chs[chs.Length-i-1];chs[chs.Length-i-1]=temp;}strings1=newstring(chs);Console.WriteLine(s1);Console.ReadKey();}}將字符串轉換成字符數(shù)組String類的實例方法usingSystem;namespaceProgram14{classProgram{staticvoidMain(string[]args){strings="itcast";s=s.ToUpper();Console.WriteLine(s);Console.ReadKey();}}}ToUpper()方法將字符串中所有的英文字母都變成大寫字母String類的實例方法Trim()方法namespaceProgram15{classProgram{staticvoidMain(string[]args){stringstr="abcd";Console.WriteLine("|"+str+"|");str=str.Trim();Console.WriteLine("|"+str+"|");Console.ReadKey();}}}調用Trim()用來去除字符串兩端的空格思考題String類的靜態(tài)方法和實例方法包括哪些?02高效的StringBuilder類Stringbuilder類StirngBuilder類C#中提供了StringBuilder類,他和string類都用于操作字符串。與string類不同的是,StringBuilder類創(chuàng)建的字符串的長度是可以改變的,他類似一個字符容器,當在其中添加或刪除字符時,并不會產生新的StringBuilder對象,因此可以讓字符串的拼接操作變的更加高效。針對添加和刪除字符串的操作。方法描述Append()將字符串str添加到StringBuilder對象的末尾Insert()在字符串中的offset位置處插入字符串strReplace()使用字符串str2替換StringBuilder對象中的字符串str1Remove()將字符串從指定索引位置index開始,移除length長度字符串ToString()將StringBuilder類型轉換成string類型Stringbuilder類StirngBuilder類classProgram{staticvoidMain(string[]args){StringBuildersb=newStringBuilder();sb.Append("abcd");Console.WriteLine("追加字符串:"+sb.ToString());sb.Insert(3,"aaa");Console.WriteLine("插入字符串:"+sb.ToString());sb.Remove(3,3);Console.WriteLine("移除字符串:"+sb.ToString());sb.Replace("a","b");Console.WriteLine("替換字符串:"+sb.ToString());Console.WriteLine("sb的長度是:"+sb.Length);Console.ReadKey();}}}創(chuàng)建StringBuilder對象將字符串“abcd”添加到sb對象的末尾在字符串中的第3個位置后插入字符串“aaa”在字符串中的第3個位置開始,移除3個長度的字符使用字符串"b"替換sb對象中的字符串"a"Stringbuilder性能分析StringBuilder性能分析Stopwatch類的命名空間為System.Diagnostics。Stopwatch類用于測量代碼執(zhí)行的時間,他有兩個方法Start()和Stop(),其中Start()方法表示計時開始,Stop()方法表示計時結束,該類還有一個屬性Elapsed用于獲取代碼執(zhí)行的總運行時間。Stringbuilder性能分析StirngBuilder類classProgram{staticvoidMain(string[]args){stringstr="";Stopwatchsp=newStopwatch();sp.Start();for(inti=0;i<10000;i++){str+=i.ToString();}sp.Stop();//停止計時Console.WriteLine(sp.Elapsed);Console.ReadKey();}}使用for循環(huán)遍歷1000次開始計時Stringbuilder性能分析StirngBuilder類staticvoidMain(string[]args){StringBuilderbuilder=newStringBuilder();Stopwatchsp=newStopwatch();sp.Start();//開始計時for(inti=0;i<10000;i++){builder.Append(i.ToString());}sp.Stop();//停止計時Console.WriteLine(sp.Elapsed);Console.ReadKey();}使用for循環(huán)遍歷1000次思考題String類與StringBuilder的異同?03DateTime類DateTime類DateTime類DateTime表示時間。構造方法方法描述DateTime(intyear,intmonth,intday)將

DateTime

結構的新實例初始化為指定的年、月和日。DateTime(intyear,intmonth,intday,inthour,intminute,intsecond)將

DateTime

結構的新實例初始化為指定的年、月、日、小時、分鐘和秒Datetime類DateTime類namespaceProgram19{classProgram{staticvoidMain(string[]args){DateTimedt1=newDateTime(2022,5,24);DateTimedt2=newDateTime(2022,5,24,15,5,5);Console.WriteLine("dt1:"+dt1);Console.WriteLine("dt2:"+dt2);Console.ReadKey();}}}初始化實例的年、月和日初始化實例的年、月、日、小時、分鐘和秒Datetime類多學一招——TimeSpanTimeSpan

對象用于表示時間間隔,在使用Data類時經常需要通過該對象增加時間間隔。TimeSpan類兩個常用構造方法方法功能描述TimeSpan(inthour,intminutes,intseconds)將新的

TimeSpan

初始化為指定的小時數(shù)、分鐘數(shù)和秒數(shù)。TimeSpan(intday,inthour,intminute,intsecond)將

DateTime

結構的新實例初始化為指定的天、小時、分鐘、秒和毫秒Datetime類namespaceProgram20{classProgram{staticvoidMain(string[]args){TimeSpants1=newTimeSpan(1,2,3);Console.WriteLine("ts1的時間間隔為:"+ts1);TimeSpants2=newTimeSpan(1,2,3,4,5);Console.WriteLine("ts2的時間間隔為:"+ts2);Console.ReadKey();}}}指定小時數(shù)、分鐘數(shù)和秒數(shù)多學一招——TimeSpan指定天、小時、分鐘、秒和毫秒Datetime類的常用屬性DateTime類的常用屬性在日期數(shù)據(jù)處理的過程中,經常需要通過DateTime對象的屬性來獲取日期中的某一部分的信息。DataTime類的常用屬性:名稱功能描述Date獲取此實例的日期部分。Day獲取此實例所表示的日期為該月中的第幾天Hour獲取此實例所表示日期的小時部分Minute獲取此實例所表示日期的分鐘部分Month獲取此實例所表示日期的月份部分Today獲取當前日期Year獲取此實例所表示日期的年份部分Now獲取一個DateTime對象,該對象的時間為本地時間Datetime類的常用屬性DateTime類的常用屬性staticvoidMain(string[]args){DateTimedt=DateTime.Now;Console.WriteLine("當前時間是:"+dt);Console.WriteLine("年:"+dt.Year);Console.WriteLine("月:"+dt.Month);Console.WriteLine("日:"+dt.Day);Console.WriteLine("時:"+dt.Hour);Console.WriteLine("分:"+dt.Minute);Console.WriteLine("秒:"+dt.Second);Console.ReadKey();}Datetime類的常用方法DateTime類的常用方法針對日期的處理,DateTime類提供的常用方法。名稱功能描述DateTimeAdd(TimeSpants)返回一個

DateTime對象,他將指定

時間間隔添加到此實例的值上。boolEquals(DateTimedt)返回一個bool值,指示此實例是否與指定的

DateTime

實例相等。stringToShortTimeString()將當前

DateTime

對象的值轉換為其等效的短時間字符串表示。stringCompare(DateTimedt1,DateTimedt2)對兩個DateTime的實例進行比較,并返回一個指示第一個實例是早于、等于還是晚于第二個實例的整數(shù)Datetime類的常用方法DateTime類的常用方法staticvoidMain(string[]args){DateTimedt=DateTime.Now;Console.WriteLine("dt:"+dt);TimeSpants=newTimeSpan(1,0,0);dt=dt.Add(ts);Console.WriteLine("dt:"+dt);boolb=dt.Equals(DateTime.Now);Console.WriteLine("判斷ts是否與系統(tǒng)時間相等:"+b);strings=dt.ToShortTimeString();Console.WriteLine("dt的時間部分為:"+s);intresult=DateTime.Compare(dt,DateTime.Now);……}判斷dt是否與系統(tǒng)時間相等獲取當前對象的短時間部分比較兩個時間先后關系04Random類思考題調用Random類兩個構造方法Random()和Random(intseed)的執(zhí)行結果的差異。Random類Random類在C#語言中提供了一個Random類,該類是一個偽隨機數(shù)生成器,它可以隨機產生數(shù)字。Random類兩個常用構造方法方法功能描述Random()使用與時間相關的默認種子值,初始化Random類的新實例。Random(intseed)使用指定的種子值初始化Random類的新實例。Random類的無參構造方法Random類的構造方法namespaceProgram23{classProgram{staticvoidMain(string[]args){//Random無參的構造函數(shù)Randomrd=newRandom();for(inti=0;i<10;i++){inttemp=rd.Next();//生成一個非負的隨機數(shù)Console.WriteLine(temp);}Console.ReadKey();}}}沒有指定種子,系統(tǒng)會以當前時鐘作為種子,產生隨機數(shù)Random類測試結果一測試結果二Random類的有參構造方法Random類的構造方法namespaceProgram24{classProgram{staticvoid

溫馨提示

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

評論

0/150

提交評論