我的數(shù)組、字符串與集合_第1頁
我的數(shù)組、字符串與集合_第2頁
我的數(shù)組、字符串與集合_第3頁
我的數(shù)組、字符串與集合_第4頁
我的數(shù)組、字符串與集合_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、大連外國語學院陶永鵬數(shù)組、字符串與集合6.1 數(shù)組數(shù)組:數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),存儲若干相同類型的數(shù)據(jù)數(shù)組是引用類型,使用時必須實例化,否則為 null要訪問數(shù)組中的元素,可以使用索引,索引從 0 開始數(shù)組的分類:一維數(shù)組 type arr;多維數(shù)組 type, arr;交錯數(shù)組 type arr;6.1.1 數(shù)組的聲明1一維數(shù)組一維數(shù)組是以線性方式存儲固定數(shù)目的項的數(shù)組。(1)一維數(shù)組的聲明語法形式: type arrayName ;其中: type可以是C#中任意的數(shù)據(jù)類型。 表明后面的變量是一個數(shù)組類型,必須放在數(shù)組名之前。 arrayName是數(shù)組名,遵循標識符的命名規(guī)則。例如: int

2、a1; /a1是一個含有int類型數(shù)據(jù)的數(shù)組double f1; /f1是一個含有double類型數(shù)據(jù)的數(shù)組 string s1; /s1是一個含有string類型數(shù)據(jù)的數(shù)組6.1.2 創(chuàng)建數(shù)組對象(2)創(chuàng)建數(shù)組對象用new運算符創(chuàng)建數(shù)組實例,有兩種基本形式。a.聲明數(shù)組和創(chuàng)建數(shù)組分別進行。語法形式: type arrayName ; /數(shù)組聲明 arrayName = new type size; /創(chuàng)建數(shù)組實例,size表明數(shù)組元素的個數(shù)。b.聲明數(shù)組和創(chuàng)建數(shù)組實例也可以合在一起寫:語法形式:type arrayName = new type size ; 例如: int a1;a1 =

3、new int 10; /a1是一個有10個int類型元素的數(shù)組string s1 = new string 5; /s1是含有5個string類型元素的數(shù)組6.1.3 數(shù)組的初始化(3)一維數(shù)組的初始化語法形式1:type arrayName = new type size val1, val2, ,valn;數(shù)組聲明與初始化同時進行時,size就是數(shù)組元素的個數(shù),它必須是常量,而且應該與大括號內(nèi)的數(shù)據(jù)個數(shù)一致。語法形式2: type arrayName = new type val1, val2, ,valn ;默認size,由編譯系統(tǒng)根據(jù)初始化表中的數(shù)據(jù)個數(shù),自動計算數(shù)組的大小。語法形式

4、3: type arrayName = val1, val2, ,valn ;數(shù)組聲明與初始化同時進行,還可以默認new運算符。語法形式4: type arrayName;arrayName = new type size val1, val2,valn ;把聲明與初始化分開在不同的語句中進行時,size同樣可以默認,也可以是一個變量。例如: int nums = new int 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;/使用語法形式1初始化int nums = new int 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;/使用語法形式2初始化int n

5、ums = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;/使用語法形式3初始化int nums ;nums = new int 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;/使用語法形式4初始化6.1.4 數(shù)組的訪問(4)一維數(shù)組的訪問數(shù)組具有初值時,就可以像其他變量一樣被訪問,既可以取數(shù)組元素的值,又可以修改數(shù)組元素的值。在C#中是通過數(shù)組名和數(shù)組元素的下標來引用數(shù)組元素的。語法形式: 數(shù)組名下標注意: 相對位移是從0開始的,所以下標的值從0到數(shù)組元素的最大值(元素個數(shù)1)為止。【練習1】有10個數(shù),輸出最大值和最小值int max, min;int q

6、ueue = new int10 89, 78, 65, 52, 90, 92, 73, 85, 91, 95 ;/定義一個一維數(shù)組max = min = queue0;/queue0是數(shù)組第一個數(shù)for (int i = 1; i max) max = queuei; if (queuei min) min = queuei;Console.WriteLine(最大數(shù)是:+max+最小數(shù)是:+ min);/輸出數(shù)組中的最大值和最小值【練習2】從鍵盤上輸入學生數(shù)n,依次輸入學生姓名并遍歷輸出。(答案見下頁ppt)【練習3】從鍵盤上輸入n個數(shù),從大到小排序輸出。9static void Main

7、(string args)int count;Console.WriteLine(請輸入您要登記的學生人數(shù) );count=int.Parse(Console.ReadLine();/ 聲明一個存放姓名的字符串數(shù)組,其長度等于提供的學生人數(shù) string names = new stringcount;/ 用一個 for 循環(huán)來接受姓名 for(int i=0; icount; i+)Console.WriteLine(“請輸入學生 0 的姓名 ,i+1);namesi=Console.ReadLine();Console.WriteLine(已登記的學生如下: );/ 用 foreach 循

8、環(huán)顯示姓名 foreach(string disp in names)Console.WriteLine(0, disp);數(shù)組聲明初始化數(shù)組元素的循環(huán)顯示輸出的循環(huán)6.1.5 多維數(shù)組多維數(shù)組多維數(shù)組就是指能用多個下標訪問的數(shù)組,多維數(shù)組類似于同類型值的矩陣。(1)多維數(shù)組的聲明語法形式: type , , , arrayName;在聲明時方括號內(nèi)加逗號,就表明是多維數(shù)組,有n個逗號,就是n+1維數(shù)組。例如: int , score; /score是一個int類型的二維數(shù)組 float , , table; /table是一個float類型的三維數(shù)組6.1.6 創(chuàng)建多維數(shù)組對象(2)創(chuàng)建數(shù)組

9、對象a.聲明數(shù)組和創(chuàng)建數(shù)組分別進行。語法形式: type , , , arrayName; /數(shù)組聲明 arrayName = new type size1, size2, size3; /創(chuàng)建數(shù)組實例size1,size2,size3分別表明多維數(shù)組每一維的元素個數(shù)。b.聲明數(shù)組和創(chuàng)建數(shù)組實例也可以合在一起寫。語法形式: type , , , arrayName = new type size1, size2, size3; 例如: int , score; score = new int 3, 4; /score是一個3行4列的二維數(shù)組 float , , table=new float

10、2, 3, 4 /table是一個三維數(shù)組,每一維的維數(shù)分別是2、3、46.1.7 多維數(shù)組初始化(3)多維數(shù)組的初始化多維數(shù)組初始化是將每維數(shù)組元素設置的初始值放在各自的花括號內(nèi),下面以最常用的二維數(shù)組為例來討論。語法形式1: type , arrayName = new type size1, size2 val11, val12,val1n , val21, val22, ,val2n , valm1,valm2,valmn ;數(shù)組聲明與初始化同時進行,數(shù)組元素的個數(shù)是size1*size2,數(shù)組的每一行分別用一個花括號括起來,每個花括號內(nèi)的數(shù)據(jù)就是這一行的每一列元素的值。初始化時的賦值

11、順序按矩陣的“行”存儲原則。語法形式2: type arrayName = new type , val11, val12, ,val1n , val21, val22, ,val2n , , valm1, valm2, ,valmn ;語法形式3: type , arrayName = val11, val12, ,val1n , val21, val22, ,val2n , , valm1, valm2, ,valmn ;數(shù)組聲明與初始化同時進行,還可以默認new運算符。語法形式4: type , arrayName; arrayName = new type size1, size2 v

12、al11, val12, ,val1n , val21, val22, ,val2n , , valm1, valm2, ,valmn ;例如: int , a = new int 3,4 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;/使用語法形式1初始化int , a = new int , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;/使用語法形式2初始化int , a = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;/使用語法形式3初始化int a ;a = new int 3, 4 0, 1

13、, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;/使用語法形式4初始化【練習1】求一個矩陣Amn的轉(zhuǎn)置矩陣?!揪毩?】求兩個矩陣的乘積AmnxBnm設計思路如下: 兩個矩陣相乘必須第一個矩陣的列和第二個矩陣的行相等。156.1.8 交錯數(shù)組交錯數(shù)組是元素為數(shù)組的數(shù)組。交錯數(shù)組元素的維度和大小可以不同。交錯數(shù)組有時稱為“數(shù)組的數(shù)組”。以下示例說明如何聲明、初始化和訪問交錯數(shù)組。下面聲明一個由三個元素組成的一維數(shù)組,其中每個元素都是一個一維整數(shù)數(shù)組:int jaggedArray = new int3; 16jaggedArray0 = new int5;jaggedArray

14、1 = new int4;jaggedArray2 = new int2; 每個元素都是一個一維整數(shù)數(shù)組。第一個元素是由 5 個整數(shù)組成的數(shù)組,第二個是由 4 個整數(shù)組成的數(shù)組,而第三個是由 2 個整數(shù)組成的數(shù)組。也可以使用初始值設定項用值填充數(shù)組元素,在這種情況下不需要數(shù)組大小。6.1.9 交錯數(shù)組的初始化交錯數(shù)組:int arr;arr = new int3;arr0=new int5;arr1=new int8;arr2=new int3;int arr=new intnew int4,3,6,7,8 ,new int1,2,3,4,5,6,7,8,new int12,23,34;【練習

15、1】某項目組有5名職工,獎金如下:員工1:3個月獎金分別為:300,600,800員工1:4個月獎金分別為:300,200,400,700員工1:2個月獎金分別為:100,800員工1:5個月獎金分別為:100,200,300,300,200員工1:1個月獎金分別為:1000請設計交錯數(shù)組存員工獎金信息,輸出每人的總獎金,并輸出第幾名員工的獎金最多?!揪毩?】試設計交錯數(shù)組存儲今年的每一天。完成當年第*天和*月*日的相互轉(zhuǎn)換。6.2 字符串 字符串 -特殊的數(shù)組 C#定義了一個基本的類String,專門用于對字符串進 行操作。 1.字符串定義 定義字符串的文本必須放在兩個雙引號(“ ”)之間

16、例如:string s1;string s2=Shanghai;char s3=計,算,機,科,學;string s4=new String(s3);6.2.2 字符串連接 利用運算符“+”來連接兩個字符串。例如:string FirstName=Ning;string LastName=Zhang;string Name=FirstName+ +LastName;6.2.3 字符串搜索 String類的IndexOf()方法,用來返回在字符串中搜索到的第一個匹配項的索引,字符串中第一個字符的索引值為0。例如:string s=ABC 文;int i=s.IndexOf(英); 英6.2.4

17、字符串比較 只要滿足下面兩個條件中的任何一個,就認為兩字符串相等: 兩個字符串都為空串,即兩個字符串的值都為null。 兩個字符串長度相等,并且每個位置的字符都相同。 可以用String類的IndexOf()方法來比較兩個字符串,用法如下: string s1=abc;string s2=abc;int pare(s1,s2); 可用“=”和“!=”比較字符串,用法如下: string s1=abc;string s2=abc;if(s1=s2) Console.WriteLine(相等);else Console.WriteLine(不相等); 6.2.5 獲取字符串長度 可以用String

18、類的Length屬性獲取字符串中的字符數(shù)。例如:string s=Hello world;Console.WriteLine(s.Length); 6.2.6 提取子字符串 可以用String類的Substring()方法提取子字符串,該方法有兩個原型: public string Substring(int startIndex),只有一個參數(shù),即從第幾個位置開始截取。 public string Substring(int startIndex, int length),第一個參數(shù)指出從第幾個位置開始截取,第二個參數(shù)指出要截取的字符的個數(shù)。例如:string s=取子字符串;string

19、sb1=s.Substring(2);string sb2=s.Substring(2,2);6.2.7 字符串刪除 可以用String類的Remove()方法刪除字符串,該方法有兩個原型: public string Remove(int startIndex)只有一個參數(shù),即刪除從startIndex索引位置到最后位置的所有字符。 public string Remove(int startIndex,int length)從startIndex索引位置開始,刪除length數(shù)目的字符。例如:string s = 取子字符串;string sb1 = s.Remove(2);string sb2 = s.Remove(2, 2); 6.2.8 插入字符串 可以用String類的Insert()方法插入字符串該方法的原型:public string Insert (int startIndex, string value)參數(shù)startIndex是新字符串要插入的索引位置;參數(shù)value是要插入的字符串。例如:string s=計算機科學;string s1=s.Insert(3, 軟件); 6.2.9 字符串替換 可以用St

溫馨提示

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

評論

0/150

提交評論