歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

C#編程及應(yīng)用程序開發(fā)(第2版)電子課件第五章.ppt

  • 資源ID:11494336       資源大小:607KB        全文頁數(shù):52頁
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

C#編程及應(yīng)用程序開發(fā)(第2版)電子課件第五章.ppt

第5章數(shù)據(jù)的輸入和輸出,(時(shí)間:1.5次課,3學(xué)時(shí)),第5章數(shù)據(jù)的輸入和輸出,輸入/輸出是程序得以實(shí)際應(yīng)用的必要措施,在程序中實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出也是每個(gè)程序員必須掌握的基本編程技術(shù)。在前面各章節(jié)的舉例中,我們都已經(jīng)使用了C#語言的部分輸入/輸出系統(tǒng),其中用得最多的是.NET類庫中Console類的一個(gè)方法Console.WriteLine(),這個(gè)方法是將在程序中生成的數(shù)據(jù)或信息輸出到控制臺(tái)(Console)中。另外,程序不光是要向控制臺(tái)輸出數(shù)據(jù),還要從控制臺(tái)讀取輸入的數(shù)據(jù),或者要求輸出的數(shù)據(jù)具有一定的格式。一般說來,數(shù)據(jù)的輸入/輸出(I/O)方式有兩種:控制臺(tái)I/O和文件I/O。C#的I/O系統(tǒng)非常龐大,也有控制臺(tái)I/O和文件I/O兩大部分,本章只介紹控制臺(tái)I/O部分,而文件I/O部分將在后續(xù)章節(jié)詳細(xì)介紹。C#的控制臺(tái)I/O主要是通過命名空間System中的類Console來實(shí)現(xiàn)的,該類給出了標(biāo)準(zhǔn)的輸入和輸出的方法,這些方法可用于從控制臺(tái)讀寫字符。本章介紹的內(nèi)容不是任何C#語法,而是.NET框架中常用的控制臺(tái)輸入/輸出的類和方法的使用格式。本章學(xué)習(xí)重點(diǎn):掌握在控制臺(tái)中輸入/輸出數(shù)據(jù)的方法掌握輸出格式化數(shù)據(jù)的方法掌握處理字符串的方法,第5章數(shù)據(jù)的輸入和輸出,5.1控制臺(tái)輸入5.2控制臺(tái)輸出5.3處理字符串的方法,5.1控制臺(tái)輸入,5.1.1Console.Read()方法5.1.2Console.ReadLine()方法,5.1控制臺(tái)輸入,System.Console類的Read()和ReadLine()方法可用來實(shí)現(xiàn)控制臺(tái)輸入,本節(jié)我們將詳細(xì)介紹如何使用這兩種方法獲取輸入。,5.1.1Console.Read()方法,Read()方法每次從輸入流(控制臺(tái))中讀取一個(gè)字符,直到收到Enter鍵才返回。將接收的字符以int型(32位整數(shù))值返回給變量;如果輸入流中沒有數(shù)據(jù),則返回-1。Read()方法是一個(gè)靜態(tài)方法,我們可以直接通過類名Console調(diào)用它,調(diào)用的格式為Console.Read。Read()方法的原型為:publicstaticintRead()。如果我們輸入了多個(gè)字符,然后按Enter鍵(此時(shí)輸入流中將包含用戶輸入的字符,加上Enter鍵和換行符rn),則Read()方法只返回用戶輸入的第一個(gè)字符。但我們可通過對程序的循環(huán)控制,多次調(diào)用Read()方法來獲取所有輸入的字符。Read()方法返回給變量的數(shù)據(jù)的類型是32位整數(shù),如果需要得到輸入的字符,則必須通過數(shù)據(jù)類型顯式轉(zhuǎn)換才可以得到相應(yīng)的字符。,5.1.1Console.Read()方法,【例5.1】Read()方法的使用。usingSystem;classMyRead1publicstaticvoidMain()inta;charch;Console.Write("請從鍵盤輸入一個(gè)字符:");a=Console.Read();/程序運(yùn)行到Read方法會(huì)暫停,直到用戶在控制臺(tái)中按任意鍵ch=(char)a;/顯式類型轉(zhuǎn)換Console.WriteLine(a);Console.WriteLine(ch);程序運(yùn)行結(jié)果:請從鍵盤輸入一個(gè)字符:a(回車)97a,5.1.1Console.Read()方法,【例5.2】通過Read()方法從控制臺(tái)接收用戶輸入的一系列字符,然后把用戶輸入的內(nèi)容顯示出來。usingSystem;classMyRead2publicstaticvoidMain(stringargs)stringbuf;Console.Write("請輸入字符串(按Enter鍵接收輸入,按x鍵退出程序):");buf=""while(true)intc=Console.Read();/接收一個(gè)字符if(char)c=x在本程序中,可以一次輸入單個(gè)字符,也可以一次輸入多個(gè)字符。當(dāng)按下x或X鍵再按下Enter鍵后將會(huì)退出本程序。,5.1.2Console.ReadLine()方法,ReadLine()方法用于從控制臺(tái)中一次讀取一行字符串,直到遇到Enter鍵才返回讀取的字符串。但此字符串中不包含Enter鍵和換行符(rn)。如果沒有收到任何輸入,或接收了無效的輸入,那么ReadLine()方法將返回null。ReadLine()方法也是一個(gè)靜態(tài)方法,可以直接通過類名Console來調(diào)用它,調(diào)用的格式為Console.ReadLine。ReadLine()方法的原型為:publicstaticstringReadLine(),5.1.2Console.ReadLine()方法,【例5.3】使用ReadLine()方法。usingSystem;classMyReadlinepublicstaticvoidMain()inti;stringstr;Console.Write("請輸入你的姓名:");str=Console.ReadLine();Console.Write("用戶的姓名為:");Console.WriteLine(str);程序的運(yùn)行結(jié)果:請輸入你的姓名:王紅(回車)用戶的姓名為:王紅,5.2控制臺(tái)輸出,5.2.1數(shù)據(jù)的格式化5.2.2格式化說明符,5.2控制臺(tái)輸出,在前述的各章節(jié)中,我們同樣也多次使用了Console類的Write()和WriteLine()方法來輸出程序的計(jì)算結(jié)果。日常生活中,有時(shí)我們不僅僅要求程序簡單地輸出數(shù)據(jù),還要求能輸出具有一定格式的數(shù)據(jù),以豐富我們應(yīng)用程序的應(yīng)用需求。,5.2.1數(shù)據(jù)的格式化,在日常生活中,各行各業(yè)的數(shù)據(jù)表示形式有多種。例如,一個(gè)十進(jìn)制數(shù)字965840,可能有以下表示形式:表示人民幣:¥9,658.40表示美元:9,658.40用于科學(xué)計(jì)算:9.65840105,在C#中表示為9.65840E5可見,對于一個(gè)程序來說,它的計(jì)算結(jié)果只是一個(gè)無任何語義的數(shù)字。所以如果希望一個(gè)應(yīng)用程序的計(jì)算結(jié)果在輸出時(shí)能反映出它的應(yīng)用特征,則必須在程序的輸出語句中給出所需數(shù)據(jù)格式的轉(zhuǎn)換控制。C#語言具有將數(shù)字在不同的表示形式之間相互轉(zhuǎn)換的功能數(shù)據(jù)的格式化。數(shù)據(jù)的格式化是指通過程序(方法),將數(shù)據(jù)的表現(xiàn)形式轉(zhuǎn)換為一定樣式的過程。C#語言是通過.NET類庫方法、格式化字符串以及其他的控制信息共同完成的。,5.2.1數(shù)據(jù)的格式化,一般實(shí)現(xiàn)把數(shù)字轉(zhuǎn)換為指定格式的字符串輸出的基本方式有3種:Write()和WriteLine()方法可以直接把數(shù)值類型變量的值,轉(zhuǎn)換成字符串輸出到控制臺(tái)中,并可使用格式說明符來控制輸出的數(shù)據(jù)格式。Write()方法用來向控制臺(tái)輸出一條信息,并且光標(biāo)仍在輸出信息的末尾。一般Write()方法中有以下兩種常用的形式:publicstaticvoidWrite(數(shù)值數(shù)據(jù)類型變量);/直接輸出變量的值publicstaticvoidWrite("N,M:Yn",變量1,變量2);其中:N表示輸出變量的序號(hào)。N為0對應(yīng)輸出的第1個(gè)變量,N為1則對應(yīng)輸出的第2個(gè)變量,依次類推。,M可選項(xiàng)。M表示輸出的變量在控制臺(tái)中所占據(jù)的字符個(gè)數(shù),如果該數(shù)字為負(fù)數(shù),則輸出按照左對齊方式;如果該數(shù)字為正數(shù),則輸出按照右對齊的方式。:Yn可選項(xiàng)。其中Y是格式化字符串,它指的是數(shù)據(jù)的輸出格式說明符,將在5.2.2節(jié)中給出。n為一個(gè)正整數(shù)。表示了數(shù)據(jù)的精度范圍(有效數(shù)字范圍),它用于控制當(dāng)前數(shù)據(jù)在格式化后表現(xiàn)出來的有效數(shù)字個(gè)數(shù)。例如:inta=32767;doubled=456.56789;Console.Write("a=0 x0,8:Xtd=1,10:F3",a,d);Console.Write("a=0 x0,-8:Xtd=1,-10:F3",a,d);輸出結(jié)果:a=0 x7fffd=456.568a=0 x7fffd=456.568本例中的格式說明符X和F在5.2.2節(jié)中給出說明。,5.2.1數(shù)據(jù)的格式化,WriteLine()方法用來向控制臺(tái)產(chǎn)生一行信息,并在信息的尾部自動(dòng)添加“rn”操作符,即輸出信息后光標(biāo)自動(dòng)移到下一新行。同Write()方法類似,WriteLine方法有以下兩種常用的形式:publicstaticvoidWriteLine(數(shù)值數(shù)據(jù)類型變量);publicstaticvoidWriteLine("N,M:Y",變量1,變量2);WriteLine()方法的參數(shù)與Write()方法的參數(shù)意義一樣。例如:inta=32767;doubled=456.56789;Console.WriteLine("a=0 x0,8:Xtd=1,10:F3",a,d);Console.WriteLine("a=0 x0,-8:Xtd=1,-10:F3",a,d);輸出結(jié)果:a=0 x7fffd=456.568a=0 x7fffd=456.568可見此例輸出結(jié)果與Write()方法不同的是每一個(gè)WriteLine()方法輸出一行信息后自動(dòng)換行。,5.2.1數(shù)據(jù)的格式化,調(diào)用ToString方法中使用格式說明符。ToString方法是System.Object類中的一個(gè)方法,此方法可以將變量的值轉(zhuǎn)換為由數(shù)字、數(shù)學(xué)符號(hào)等組成的字符串。由于所有的類都是從Object類中派生出來的,因此,所有的對象都可以使用ToString方法,例如各種基本數(shù)據(jù)類型(int32、int64)等。ToString方法的調(diào)用格式為:類對象名稱.ToString(“格式說明符”)例如:intvar=8769;stringstr=var.ToString("C");/使用ToString()方法,將整型數(shù)轉(zhuǎn)換為金額格式表示輸出結(jié)果將是:¥8,769.00其中格式說明符C是用于金額的格式說明符,我們將在5.2.2節(jié)中介紹。調(diào)用String類的Format靜態(tài)方法。Format()方法可用于將信息格式化為一個(gè)新的字符串。由于Format()方法是靜態(tài)的,因此可以以String.Format的方式直接調(diào)用。Format方法常用的使用格式:stringstr=String.Format("N,M:Yn",變量1,變量2,.);其中:str是格式化后得到的字符串;其他的參數(shù)與Write和WriteLine方法中的參數(shù)相同。Format()方法還有兩種使用格式可參閱MSDN文檔。,5.2.1數(shù)據(jù)的格式化,【例5.4】基本的格式化方法。usingSystem;classMyFormatpublicstaticvoidMain()inta=34567;Console.WriteLine("使用WriteLine格式化數(shù)據(jù):");Console.WriteLine("n0:Cn0:C4",a);Console.WriteLine("n0:Fn0:F4",a);Console.WriteLine("使用ToString格式化數(shù)據(jù):");stringstr1=a.ToString("c");stringstr2=a.ToString("c3");Console.WriteLine(str1);Console.WriteLine(str2);Console.WriteLine("使用String.Format格式化數(shù)據(jù):");stringstr4=String.Format("我們也能使用String.Format格式化數(shù)據(jù):");stringstr5=String.Format("n0:cn0:c0",a);Console.WriteLine(str4);Console.WriteLine(str5);,5.2.1數(shù)據(jù)的格式化,程序運(yùn)行結(jié)果:使用WriteLine格式化數(shù)據(jù):¥34,567.00¥34,567.000034567.0034567.0000使用ToString格式化數(shù)據(jù):¥34,567.00¥34,567.000使用String.Format格式化數(shù)據(jù):¥34,567.00我們也能使用String.Format格式化數(shù)據(jù):¥34,567在本例中將變量a中的數(shù)字格式化為金額、小數(shù),其中的說明符將在5.2.2節(jié)中詳細(xì)介紹。,5.2.2格式化說明符,.NET框架體系規(guī)定可以使用兩種格式進(jìn)行數(shù)據(jù)的格式化:一種是由系統(tǒng)定義的標(biāo)準(zhǔn)格式,另一種是用戶自定義格式。這兩種格式主要包含了各種用于格式化數(shù)據(jù)的格式控制字符,使用這些控制字符組成所需的數(shù)據(jù)格式,然后由5.2.1節(jié)中所述3種格式化方式即可實(shí)現(xiàn)數(shù)據(jù)的格式化了。1.標(biāo)準(zhǔn)格式說明符標(biāo)準(zhǔn)格式說明符定義了人們常用的8種數(shù)據(jù)表示形式,如表5.1所示。,5.2.2格式化說明符,表5.1標(biāo)準(zhǔn)格式說明符,5.2.2格式化說明符,標(biāo)準(zhǔn)格式的一般形式是:N,M:Yn其中:N表示輸出變量的序號(hào)。N為0對應(yīng)輸出的第1個(gè)變量,N為1則對應(yīng)輸出的第2個(gè)變量,依次類推。,M是可選項(xiàng)。M表示輸出的變量在控制臺(tái)中所占據(jù)的字符個(gè)數(shù),如果該數(shù)字為負(fù)數(shù),則輸出按照左對齊方式;如果該數(shù)字為正數(shù),則輸出按照右對齊的方式。:Yn是可選項(xiàng)。Y是格式化說明符,它指的是數(shù)據(jù)的輸出格式說明符(如表5.1所示),這些字符是由系統(tǒng)定義的,它們基本涵蓋了.NET框架定義的所有數(shù)值類型數(shù)據(jù)的表現(xiàn)形式。n為一個(gè)正整數(shù),表示了數(shù)據(jù)的精度范圍(有效數(shù)字范圍),它用于控制當(dāng)前數(shù)據(jù)在格式化后表現(xiàn)出來的有效數(shù)字個(gè)數(shù)。貨幣金額格式字符“C或c”用來組成將數(shù)據(jù)轉(zhuǎn)換為貨幣金額格式的字串,在字符“C或c”后面的數(shù)字定義了貨幣金額數(shù)據(jù)小數(shù)點(diǎn)后保留的數(shù)字個(gè)數(shù),如果沒有定義任何數(shù)字,則默認(rèn)小數(shù)點(diǎn)后保留2位數(shù)字。例如:inta=123456;doubled=1234.5678;stringstr1=String.Format("0:c",a);/得到的字串是"¥123,456.00"stringstr2=String.Format("0:c",d);/得到的字串是"¥1,234.57"stringstr3=String.Format("0:c4",a);/得到的字串是"¥123,456.0000"stringstr4=String.Format("0:c4",d);/得到的字串是"¥1,234.5678"stringstr5=d.ToString("c");/得到的字串是"¥1,234.57"stringstr6=d.ToString("c4");/得到的字串是"¥1,234.5678",5.2.2格式化說明符,提示:所顯示的貨幣金額符號(hào)同用戶使用的操作系統(tǒng)有關(guān),如果本例在Windows2000Professional英文版中運(yùn)行,則結(jié)果中顯示的貨幣符號(hào)是;如果我們使用的是中文版操作系統(tǒng),則將會(huì)顯示的貨幣符號(hào)可能就是¥。,5.2.2格式化說明符,整數(shù)數(shù)據(jù)格式字符“D或d”用來組成將數(shù)據(jù)表示為十進(jìn)制整數(shù)數(shù)據(jù)的格式化字符串。字符“D或d”后面的數(shù)字規(guī)定了要表示的數(shù)據(jù)位數(shù),如果這個(gè)數(shù)字小于整數(shù)數(shù)據(jù)的位數(shù),則顯示所有的整數(shù)位;如果這個(gè)數(shù)字大于整數(shù)數(shù)據(jù)的位數(shù),則在整數(shù)數(shù)據(jù)的前面用數(shù)字“0”補(bǔ)足所有的位數(shù)。例如:inta=123456;stringstr1=String.Format("0:d",a);/得到的字串是"123456"stringstr2=String.Format("0:d6",a);/得到的字串是"123456"stringstr3=String.Format("0:d7",a);/得到的字串是"0123456"stringstr4=a.ToString("d");/得到的字串是"123456"stringstr5=a.ToString("d7");/得到的字串是"0123456"科學(xué)計(jì)數(shù)法格式字符“E或e”用來將數(shù)據(jù)轉(zhuǎn)換為科學(xué)計(jì)數(shù)法形式。在字符“E或e”后面的數(shù)字用來規(guī)定科學(xué)計(jì)數(shù)法表示數(shù)據(jù)的小數(shù)點(diǎn)后數(shù)字的個(gè)數(shù)。如字符“E或e”后面沒有數(shù)字,則顯示7位有效數(shù)字。例如:inta=123456;doubled=1234.5678;stringstr1=String.Format("0:e",a);/得到的字串是"1.234560e+005"stringstr2=String.Format("0:e",d);/得到的字串是"1.234568e+003"stringstr3=String.Format("0:e4",a);/得到的字串是"1.2346e+005"stringstr4=String.Format("0e4",d);/得到的字串是"1.2346e+003"stringstr5=a.ToString("E");/得到的字串是"1.234560E+005"stringstr6=d.ToString("E4");/得到的字串是"1.2346E+003"浮點(diǎn)數(shù)據(jù)格式字符“F或f”用來描述帶有小數(shù)點(diǎn)的數(shù)據(jù)的顯示形式。字符“F或f”后面的數(shù)字規(guī)定了小數(shù)點(diǎn)后的數(shù)據(jù)位數(shù)。如果沒有指定數(shù)字,則數(shù)據(jù)默認(rèn)保留兩位小數(shù),如果指定的數(shù)字大于數(shù)據(jù)本身小數(shù)部分的位數(shù),則在小數(shù)部分?jǐn)?shù)字的最后補(bǔ)“0”。,5.2.2格式化說明符,自然數(shù)據(jù)格式字符“N或n”用來表示自然數(shù)據(jù)格式。這種數(shù)據(jù)格式將數(shù)據(jù)格式化成帶逗號(hào)和小數(shù)點(diǎn),即表示為“dd,ddd,ddd.dd”的形式。這種數(shù)字分組的表示形式多用于一些正規(guī)的場合,便于直觀了解數(shù)據(jù)的大小量級。字符“N或n”后面的數(shù)字規(guī)定了數(shù)據(jù)格式中小數(shù)點(diǎn)后面的數(shù)字個(gè)數(shù)。inta=123456;doubled=1234.5678;stringstr1=String.Format("0:n",a);/得到的字串是"123,456.00"stringstr2=String.Format("0:n",d);/得到的字串是"1,234.57"stringstr3=a.ToString("n4");/得到的字串是"123,456.0000"stringstr4=d.ToString("n4");/得到的字串是"1,234.5678"十六進(jìn)制數(shù)據(jù)格式字符“X或x”用于將數(shù)據(jù)表示為十六進(jìn)制格式。字符“X或x”后面的數(shù)字表示了格式化數(shù)據(jù)的數(shù)字個(gè)數(shù),其規(guī)定與整數(shù)數(shù)據(jù)格式類似。例如:inta=123456;stringstr1=String.Format("0:x",a);/得到的字串是"1e240"stringstr2=a.ToString("x5");/得到的字串是"1e240"stringstr3=a.ToString("x6");/得到的字串是"01e240"stringstr4=a.ToString("x7");/得到的字串是"001e240"保持精度(來回轉(zhuǎn)換)將數(shù)字從一種格式轉(zhuǎn)換為另一種格式時(shí),可能會(huì)降低精度。字符“R或r”用于將字符串轉(zhuǎn)換為數(shù)字是保持其精度。使用該格式說明符后,運(yùn)行時(shí)環(huán)境將盡可能保持原有數(shù)字的精度。,5.2.2格式化說明符,2.自定義數(shù)字格式說明符有時(shí)候,需要更精確地按某種意圖控制數(shù)字的格式,比如格式化駕駛證號(hào)或社會(huì)保險(xiǎn)號(hào)時(shí),可能想加入短劃線;而對于電話號(hào)碼,則想加入括號(hào)和短劃線等,這時(shí)就需要使用一些自定義的格式說明符來實(shí)現(xiàn)所需的數(shù)據(jù)格式。表5.2所示為自定義數(shù)據(jù)格式說明符。,5.2.2格式化說明符,表5.2自定義數(shù)據(jù)格式說明符,5.2.2格式化說明符,【例5.5】使用自定義說明符顯示特殊數(shù)據(jù)格式(用WriteLine()方法實(shí)現(xiàn)輸出)。usingSystem;usingSystem.Globalization;classCustomFormat1publicstaticvoidMain()inta=1234;floatb=12.34f;/"0"格式化說明符Console.WriteLine("n"0"格式化說明符:");Console.WriteLine("00:0000000",a);Console.WriteLine("00:0000000",b);/"#"格式化說明符Console.WriteLine("n"#"格式化說明符:");Console.WriteLine("00:0#",a);Console.WriteLine("00:0#",b);/","格式化說明符Console.WriteLine("n","格式化說明符:");Console.WriteLine("00:0,",1000000);/","用作倍增器Console.WriteLine("00:#,#,#0",2000000);/","用作分隔符Console.WriteLine("00:#,#,#0",3);/"%"格式化說明符Console.WriteLine("n"%"格式化說明符:");Console.WriteLine("00:0%",a);/將原數(shù)乘100%Console.WriteLine("00:0%",b);/單引號(hào)格式化說明符Console.WriteLine("n單引號(hào)格式化說明符:");Console.WriteLine("00:mynumberis:0",a);Console.WriteLine("00:mynumberis:0",b);Console.WriteLine("00:mine:0",a);Console.WriteLine("00:mine:0",b);,5.2.2格式化說明符,程序的執(zhí)行結(jié)果:"0"格式化說明符:1234000123412.340000012"#"格式化說明符:12340123412.3400012","格式化說明符:1000000120000002,000,00033"%"格式化說明符:1234123400%12.341234%單引號(hào)格式化說明符:1234mynumberis:123412.34mynumberis:121234mine:123412.34mine:12,5.2.2格式化說明符,【例5.6】使用for循環(huán)創(chuàng)建一個(gè)負(fù)數(shù),然后將其遞增為0和正數(shù)。并且可以使用同一個(gè)WriteLine來顯示它們。本例將給出3種不同的情況。usingSystem;classCustomFormat2publicstaticvoidMain()Console.WriteLine("n第一種情況");for(intx=-100;x<=100;x+=100)Console.WriteLine("0:000;-00000;0",x);Console.WriteLine("n第二種情況");for(intx=-100;x<=100;x+=100)Console.WriteLine("0:正數(shù):0;負(fù)數(shù):-0;零:0",x);Console.WriteLine("n第三種情況");for(intx=-100;x<=100;x+=100)Console.WriteLine("0:father:-0;mother:0;brother:0",x);,5.2.2格式化說明符,程序運(yùn)行結(jié)果:第一種情況-001000100第二種情況負(fù)數(shù):-100零:0正數(shù):100第三種情況mother:100brother:0father:-100,5.2.2格式化說明符,3.格式化日期和時(shí)間獲取日期和時(shí)間C#和.NET框架提供了一個(gè)用于存儲(chǔ)日期和時(shí)間的類System.DateTime,我們可通過DateTime類獲取完整的日期和時(shí)間。DateTime類常用的3種使用格式:DateTime(intyear,intmonth,intday);DateTime(intyear,intmonth,intday,inthour,intminute,intsecond);DateTime(intyear,intmonth,intday,inthour,intminute,intsecond,intmillisecond);我們只要按要求給出所要表示的日期和時(shí)間的整數(shù)數(shù)值就可以構(gòu)造出DateTime類的對象。例如,建立一個(gè)對象表示2002年10月1日上午8點(diǎn)30分15秒,可以用以下語句實(shí)現(xiàn):DateTimemydate=newDateTime(2002,10,1,8,30,15);/生成一個(gè)DateTime類的對象DateTime類包含許多很有用的屬性和方法,用于表示當(dāng)前日期和時(shí)間等信息,DateTime類的屬性如表5.3所示。,5.2.2格式化說明符,表5.3DateTime類的屬性,5.2.2格式化說明符,續(xù)表,5.2.2格式化說明符,以上屬性都是靜態(tài)屬性,因此可以直接通過類名來取得它們的值,不需要通過對象來調(diào)用,例如:DateTime.NowDateTime.Today【例5.7】獲取日期和時(shí)間。usingSystem;usingSystem.Globalization;classDateTime1publicstaticvoidMain()DateTimedate=newDateTime(2002,10,1);/構(gòu)造一個(gè)DateTime對象2002年10月1日Console.WriteLine(date);Console.WriteLine(date.DayOfWeek);/對象的星期數(shù)Console.WriteLine(date.DayOfYear);/對象的日期在一年中的序號(hào)Console.WriteLine(date.TimeOfDay);/對象的時(shí)間Console.WriteLine(DateTime.Now);/調(diào)用DateTime的靜態(tài)屬性,獲取程序運(yùn)行的當(dāng)前時(shí)間運(yùn)行結(jié)果:2002-10-100:00:00/在創(chuàng)建DateTime對象時(shí),由于沒有指定時(shí)間數(shù)值,所以時(shí)間數(shù)值為0Tuesday/星期二274/2002年的第274天00:00:002003-4-121:53:12,5.2.2格式化說明符,格式化日期和時(shí)間數(shù)據(jù)在日常生活中,我們表示時(shí)間和日期的形式有多種。例如2002年10月1日16:00是一種表達(dá)方式,而這一日期和時(shí)間也可表示為:10/1/20024:00PM,除了這兩種形式外,還有多種表達(dá)方式。如何讓程序在輸出時(shí)能顯示我們想要的日期和時(shí)間格式呢?在DateTime類中封裝了Write()方法,可以用來進(jìn)行日期時(shí)間的格式化操作。日期和時(shí)間數(shù)據(jù)的格式化說明符如表5.4所示。,5.2.2格式化說明符,表5.4日期和時(shí)間格式化說明符,注:表5.4中,d表示日期;m表示月份;y表示年份;h表示小時(shí);m表示分鐘;s表示秒;GMT表示國際標(biāo)準(zhǔn)時(shí)間。,5.2.2格式化說明符,【例5.8】日期時(shí)間格式。usingSystem;usingSystem.Globalization;classDateTime2publicstaticvoidMain()/使用Format方法DateTimemydate1=newDateTime(2001,10,1,16,0,0);/構(gòu)建對象/使用Write()方法DateTimemydate2=mydate1;Console.WriteLine("d:0:d",mydate2);Console.WriteLine("D:0:D",mydate2);Console.WriteLine("f:0:f",mydate2);Console.WriteLine("F:0:F",mydate2);Console.WriteLine("g:0:g",mydate2);Console.WriteLine("G:0:G",mydate2);Console.WriteLine("m:0:m",mydate2);Console.WriteLine("M:0:M",mydate2);Console.WriteLine("r:0:r",mydate2);Console.WriteLine("R:0:R",mydate2);Console.WriteLine("s:0:s",mydate2);/Console.WriteLine("S:0:S",mydate2);/錯(cuò)誤!Console.WriteLine("u:0:u",mydate2);Console.WriteLine("d:0:y",mydate2);Console.WriteLine("Y:0:Y",mydate2);讀者可以上機(jī)運(yùn)行該程序,并將結(jié)果與表5.4的內(nèi)容進(jìn)行比較,以便深刻理解和領(lǐng)會(huì)日期時(shí)間數(shù)據(jù)的格式。,5.3處理字符串的方法,5.3.1String類的字符串方法5.3.2StringBuilder類的字符串方法5.3.3Parse()方法5.3.4Convert類,5.3處理字符串的方法,前面已介紹了關(guān)于格式化字符串的所有知識(shí),由于字符串是一種特殊的數(shù)據(jù)類型,所以介紹有關(guān)方面深入的應(yīng)用問題。,5.3.1String類的字符串方法,字符串變量是由關(guān)鍵字string來定義的,而String是System命名空間中的一個(gè)類,所以對字符串進(jìn)行操作可以調(diào)用String類的所有屬性和方法。String類的方法調(diào)用格式為:String.方法名()表5.5列出了一些String類常用的處理字符串的方法。有關(guān)表中方法的參數(shù)和String類的其他方法可參見MSDN文檔。,5.3.1String類的字符串方法,表5.5String類常用的字符串方法,5.3.1String類的字符串方法,續(xù)表,5.3.2StringBuilder類的字符串方法,當(dāng)我們調(diào)用字符串方法進(jìn)行字符串的修改時(shí),實(shí)際上將創(chuàng)建一個(gè)新的字符串,而存儲(chǔ)在字符串中的某個(gè)字符是不能修改的。例如:以下代碼運(yùn)行后字符串中的字符不能被修改。usingSystem;classStringErrorpublicstaticvoidMain()stringstr="abcdefghijklmnop"/字符串雖是由字符數(shù)組組成,但不能將其中第6個(gè)字符改為X,!str5=X;/程序運(yùn)行會(huì)出錯(cuò)Console.WriteLine(str);程序運(yùn)行后原字符串沒有被修改,并且系統(tǒng)不正常退出。在實(shí)際應(yīng)用中,使用表5.5中列出的處理字符串的方法時(shí),需要為處理后的新字符串另設(shè)一個(gè)空的存儲(chǔ)空間(即創(chuàng)建一個(gè)新的字符串對象)。例如,在本例中需要先將前5個(gè)字符復(fù)制到另一個(gè)存儲(chǔ)空間,然后輸入第6個(gè)字符,最后將從第7個(gè)字符開始的字符串復(fù)制到后面。如果確實(shí)需要修改字符串,則應(yīng)該使用C#提供的StringBuilder類。命名空間System.Text中的StringBuilder類用于創(chuàng)建存儲(chǔ)可修改字符串的對象。使用StringBuilder類創(chuàng)建的對象與用String類創(chuàng)建的字符串類似,差別在于后者創(chuàng)建的字符串不能被修改,當(dāng)要修改或操縱字符串時(shí),必須再另創(chuàng)建一個(gè)新的字符串對象。而StringBuilder類的對象包含的字符串信息可以被修改,該類的方法也可直接操縱字符串中存儲(chǔ)的值。表5.6列出了StringBuilder類的方法和屬性。,5.3.2StringBuilder類的字符串方法,表5.6StringBuilder類的方法和屬性,5.3.2StringBuilder類的字符串方法,有關(guān)表5.6中方法的參數(shù)和StringBuilder類的其他方法可參見MSDN文檔。【例5.9】使用StringBuilder類。usingSystem;usingSystem.Text;/為了引用StringBuilder類classBuildNamepublicstaticvoidMain()StringBuilderchgstr=newStringBuilder();/創(chuàng)建名為chgstr的StringBuilder對象stringbuffer;/創(chuàng)建名為buffer的字符串用于取得用戶輸入的信息intmarker=0;Console.Write("請輸入您的姓:");/讀取"姓"buffer=Console.ReadLine();if(buffer!=null)chgstr.Append(buffer);/將姓追加到StringBuilder類的對象chgstr中marker=chgstr.Length;/將姓的長度賦給變量marker,該變量被用來確定放置"中名"的位置,5.3.2StringBuilder類的字符串方法,Console.Write("請輸入您的姓名的最后一個(gè)字:");/讀"名"buffer=Console.ReadLine();if(buffer!=null)chgstr.Append("");/加一個(gè)空格chgstr.Append(buffer);/將buffer中字符串追加到chgstr中Console.Write("請輸入您的中名:");/讀"中名"buffer=Console.ReadLine();if(buffer!=null)chgstr.Insert(marker+1,buffer);/將中名插入chgstr對象的中間chgstr.Insert(marker+buffer.Length+1,"");/在"中名"后插入空格Console.WriteLine("您的全名是:0",chgstr);/顯示全名Console.WriteLine("您的全名長度:0",chgstr.Length);/輸出chgstr對象當(dāng)前存儲(chǔ)的值的長度程序的輸出結(jié)果:請輸入您的姓:劉(回車)請輸入您的姓名的最后一個(gè)字:南(回車)請輸入您的中名:泳您的全名是:劉泳南您的全名長度:5,5.3.3Parse()方法,上節(jié)介紹的Format方法和ToString方法,都是用來將數(shù)字轉(zhuǎn)換為相應(yīng)格式的字符串輸出。而與這些方法相對應(yīng)的Parse()方法則可以將字符串轉(zhuǎn)換為數(shù)值類型數(shù)據(jù),且被轉(zhuǎn)換的字串可以包含格式化數(shù)據(jù),也可以是由數(shù)字字符組成的字串。調(diào)用Parse()方法的常用格式:publicstatic數(shù)據(jù)類型.Parse(strings);【例5.10】數(shù)字和字串的相互轉(zhuǎn)換。usingSystem;usingSystem.Globalization;classEachotherpublicstaticvoidMain()inta;doubled;stringstr;str=Console.ReadLine();/控制臺(tái)輸入整數(shù)數(shù)字字串a(chǎn)=int.Parse(str);/將字串轉(zhuǎn)換為整數(shù)Console.WriteLine(a+11111);str=Console.ReadLine();/控制臺(tái)輸入雙精度數(shù)字字串d=double.Parse(str);/將字串轉(zhuǎn)換為雙精度數(shù)Console.WriteLine(d+0.11);程序運(yùn)行結(jié)果:12345(回車)2345612345(回車)12356,5.3.4Convert類,在實(shí)際應(yīng)用中,使用Read()和ReadLine()方法讀取數(shù)據(jù)的關(guān)鍵,不僅僅是要取得信息,而是想將獲得的信息轉(zhuǎn)換為想要的格式。如對字符串中的文本進(jìn)行過濾,得到一個(gè)不同的字符串,或?qū)⑵滢D(zhuǎn)換為一種不同的數(shù)據(jù)類型。System命名空間中有一個(gè)用于將某個(gè)基本數(shù)據(jù)類型轉(zhuǎn)換為另一個(gè)基本數(shù)據(jù)類型的Convert類。Convert類包含了大量的可將數(shù)據(jù)轉(zhuǎn)換為不同的數(shù)據(jù)類型的靜態(tài)方法,由于是靜態(tài)方法,所以可直接使用以下語句格式調(diào)用:Convert.方法名(原數(shù)據(jù)變量);其中:“方法”名是要使用的轉(zhuǎn)換方法。表5.7列出了Convert類轉(zhuǎn)換數(shù)據(jù)類型的一些方法。“原數(shù)據(jù)變量”是想要轉(zhuǎn)換為新類型的數(shù)據(jù)變量。,5.3.3Parse()方法,表5.7Convert類轉(zhuǎn)換數(shù)據(jù)類型的方法,5.3.3Parse()方法,使用Convert類的前提條件是用using語句引用命名空間System.Text。Convert類位于基類庫中,所以可在其他編程語言中使用這個(gè)類。注意,Convert類的方法將數(shù)據(jù)轉(zhuǎn)換為基數(shù)據(jù)類型,而不是C#數(shù)據(jù)類型,但我們知道每種C#數(shù)據(jù)類型都有相應(yīng)的基類型。有關(guān)方法的參數(shù)和Conver類的其他方法可參見MSDN文檔。【例5.11】使用Convert類的方法,將讀取的字符串轉(zhuǎn)換為一個(gè)整數(shù)。usingSystem;usingSystem.Text;/為了使用Convert類classUseConvertpublicstaticvoidMain()stringbuff;intage;Console.Write("請輸入您的年齡:");buff=Console.ReadLine();try/捕獲異常age=Convert.ToInt32(buff);/將輸入的年齡字串轉(zhuǎn)換為32位整數(shù)if(ageUseConvert請輸入您的年齡:19你不到21歲。后年你的年齡是:21d:>UseConvert請輸入您的年齡:40你是21歲或已超過21歲。后年你的年齡是:42d:>UseConvert請輸入您的年齡:99999999999youenteredanumberthatistoobigortoosmall.d:>UseConvert請輸入您的年齡:abcyoudidntenteravalidnumber,Q&A?Thanks!,

注意事項(xiàng)

本文(C#編程及應(yīng)用程序開發(fā)(第2版)電子課件第五章.ppt)為本站會(huì)員(max****ui)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!