版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第7章 常用數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)和算法是程序設(shè)計(jì)的基石。數(shù)據(jù)結(jié)構(gòu)和算法是程序設(shè)計(jì)的基石。本章重點(diǎn)講述C#中的幾個(gè)主要的數(shù)據(jù)結(jié)構(gòu)類型:字符串、數(shù)組和枚舉。本章還將介紹一些常用算法,如幾種典型排序算法的C#實(shí)現(xiàn)。2022-6-242C#程序設(shè)計(jì)實(shí)用教程7.1 字符串字符串字符串是應(yīng)用程序和用戶交互的主要方式之一。.NET提供了幾個(gè)類來(lái)快速實(shí)現(xiàn)字符串操作,包括String、StringBuilder等。2022-6-243C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串StringSystem.String是最常用的字符串操作類。下面從各個(gè)應(yīng)用的角度對(duì)String類進(jìn)行詳細(xì)的介紹。 1. 1. 比較字符
2、串比較字符串比較字符串是指按照字典排序規(guī)則,判定兩個(gè)字符的相對(duì)大小。在String類中,常用的比較字符串的方法包括Compare、CompareTo、CompareOrdinal以及Equals。2022-6-244C#程序設(shè)計(jì)實(shí)用教程方法方法說(shuō)明說(shuō)明Compare 靜態(tài)方法。比較兩個(gè)指定的靜態(tài)方法。比較兩個(gè)指定的String對(duì)象對(duì)象CompareTo 非靜態(tài)方法。將此字符串與指定的對(duì)象或非靜態(tài)方法。將此字符串與指定的對(duì)象或String進(jìn)行比較,并返回兩者相對(duì)進(jìn)行比較,并返回兩者相對(duì)值的指示值的指示Concat 靜態(tài)方法。連接靜態(tài)方法。連接String的一個(gè)或多個(gè)字符串的一個(gè)或多個(gè)字符串Con
3、tains 非靜態(tài)方法。返回一個(gè)值,該值指示指定的非靜態(tài)方法。返回一個(gè)值,該值指示指定的String對(duì)象是否出現(xiàn)在此字符串對(duì)象是否出現(xiàn)在此字符串中中 Equals 非靜態(tài)方法。確定兩個(gè)非靜態(tài)方法。確定兩個(gè)String對(duì)象是否具有相同的值對(duì)象是否具有相同的值Format 靜態(tài)方法。將指定的靜態(tài)方法。將指定的String中的每個(gè)格式項(xiàng)替換為相應(yīng)對(duì)象的值的文本等效中的每個(gè)格式項(xiàng)替換為相應(yīng)對(duì)象的值的文本等效項(xiàng)項(xiàng) IndexOf 非靜態(tài)方法。返回非靜態(tài)方法。返回String或一個(gè)或多個(gè)字符在此字符串中的第一個(gè)匹配項(xiàng)的或一個(gè)或多個(gè)字符在此字符串中的第一個(gè)匹配項(xiàng)的索引索引Insert 非靜態(tài)方法。在該非靜態(tài)
4、方法。在該String中的指定索引位置插入一個(gè)指定的中的指定索引位置插入一個(gè)指定的StringRemove 非靜態(tài)方法。從該非靜態(tài)方法。從該String中刪除指定個(gè)數(shù)的字符中刪除指定個(gè)數(shù)的字符Replace 非靜態(tài)方法。將該非靜態(tài)方法。將該String中的指定中的指定String的所有匹配項(xiàng)替換為其他指定的的所有匹配項(xiàng)替換為其他指定的 StringSplit 非靜態(tài)方法。返回包含該非靜態(tài)方法。返回包含該String中的子字符串(由指定中的子字符串(由指定Char或或String數(shù)組的數(shù)組的元素分隔)的元素分隔)的String數(shù)組數(shù)組Substring 非靜態(tài)方法。從此字符串中檢索子字符串非靜態(tài)
5、方法。從此字符串中檢索子字符串ToLower 非靜態(tài)方法。返回該非靜態(tài)方法。返回該String轉(zhuǎn)換為小寫(xiě)形式的副本轉(zhuǎn)換為小寫(xiě)形式的副本ToUpper 非靜態(tài)方法。返回該非靜態(tài)方法。返回該String轉(zhuǎn)換為大寫(xiě)形式的副本轉(zhuǎn)換為大寫(xiě)形式的副本Trim 非靜態(tài)方法。從此字符串的開(kāi)始位置和末尾移除一組指定字符的所有匹配項(xiàng)非靜態(tài)方法。從此字符串的開(kāi)始位置和末尾移除一組指定字符的所有匹配項(xiàng)串的基本概念l空串:不含任何字符的串稱為空串空串:不含任何字符的串稱為空串l空格串:由一個(gè)或多個(gè)空格組成的串,稱為空空格串:由一個(gè)或多個(gè)空格組成的串,稱為空格串。格串。l串相等:是指兩個(gè)串的長(zhǎng)度相等且對(duì)應(yīng)的字符串相等:是
6、指兩個(gè)串的長(zhǎng)度相等且對(duì)應(yīng)的字符相等。相等。l模式匹配:確定子串在主串中首次出現(xiàn)位置的模式匹配:確定子串在主串中首次出現(xiàn)位置的運(yùn)算。運(yùn)算。l子串:串中任意個(gè)連續(xù)的字符組成的子序列稱子串:串中任意個(gè)連續(xù)的字符組成的子序列稱為該為該 串的子串。串的子串。l主串:包含子串的串稱為該子串的主串。主串:包含子串的串稱為該子串的主串。7.1.1 靜態(tài)字符串String(1 1)CompareCompare方法方法 Compare方法是String類的靜態(tài)方法,用于全面比較兩個(gè)字符串對(duì)象。 下面使用Compare方法來(lái)比較兩個(gè)字符串,輸出結(jié)果如注釋語(yǔ)句所示。 /定義兩個(gè)String對(duì)象,并對(duì)其賦值 Syste
7、m.String strA=Hello; System.String strB=World; 2022-6-247C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String /Compare Console.WriteLine(String.Compare(strA,strB);/-1 Console.WriteLine(String.Compare(strA,strA);/0 Console.WriteLine(String.Compare(strB,strA);/1 2022-6-248C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(2 2)CompareToCompareTo方法方法
8、 CompareTo方法將當(dāng)前字符串對(duì)象與另一個(gè)對(duì)象做比較,其作用與Compare類似,返回值也相同。 CompareTo與Compare相比,區(qū)別在于: CompareTo不是靜態(tài)方法,可以通過(guò)一個(gè)String對(duì)象調(diào)用; CompareTo沒(méi)有重載形式,只能按照大小寫(xiě)敏感方式比較兩個(gè)整串。 2022-6-249C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串StringCompareTo方法的使用如下代碼所示: /定義兩個(gè)String對(duì)象,并對(duì)其賦值 System.String strA=Hello; System.String strB=World; /CompareTo Console.Wri
9、teLine(strA.CompareTo(strB);/-1 2022-6-2410C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(3 3)EqualsEquals方法方法 Equals方法用于方便地判定兩個(gè)字符串是否相同,有兩種重載形式: public bool Equals(string) public static bool Equals(string,string) 如果兩個(gè)字符串相等,Equals()返回值為T(mén)rue;否則,返回False。Equals方法的使用如下代碼所示: /Equals Console.WriteLine(String.Equals(strA,strB
10、);/false Console.WriteLine(strA.Equals(strB);/false 2022-6-2411C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(4 4)比較運(yùn)算符)比較運(yùn)算符 String支持兩個(gè)比較運(yùn)算符“=”、“!=”,分別用于判定兩個(gè)字符是否相等和不等,并區(qū)分大小寫(xiě)。下例中,使用“=”、“!=”對(duì)“Hello”和“World”進(jìn)行比較。 /=和!= Console.WriteLine(strA=strB); /false Console.WriteLine(strA!=strB); /true2022-6-2412C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)
11、字符串String2. 2. 定位字符和子串定位字符和子串定位子串是指在一個(gè)字符串尋找其中包含的子串或者某個(gè)字符,在String類中,常用的定位子串和字符的方法包括StartWith/EndsWith、IndexOf/LastIndexOf以及IndexOfAny/LastIndexOf。 2022-6-2413C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(1 1)StartWithStartWith/ /EndsWithEndsWith方法方法 StartWith方法可以判定一個(gè)字符串對(duì)象是否以另一個(gè)子字符串開(kāi)頭,如果是返回True;否則返回False。其定義為: public b
12、ool StartsWith(string value) 其中,參數(shù)value即待判定的子字符串。 /StartWith Console.WriteLine(strA.StartsWith(He);/true Console.WriteLine(strA.StartsWith(She);/false另外,EndsWith方法可以判定一個(gè)字符是否以另一個(gè)子字符串結(jié)尾。 2022-6-2414C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(2 2)IndexOf/LastIndexOfIndexOf/LastIndexOf方法方法 IndexOf方法用于搜索一個(gè)字符串,某個(gè)特定的字符或子串
13、第一次出現(xiàn)的位置,該方法區(qū)分大小寫(xiě),并從字符串的首字符開(kāi)始以計(jì)數(shù)。如果字符串中不包含這個(gè)字符或子串,則返回-1。定位字符: int IndexOf(char value) int IndexOf(char value,int startIndex) int IndexOf(char value,int startIndex,int count) 2022-6-2415C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String定位子串: int IndexOf(string value) int IndexOf(string value,int startIndex) int IndexOf(str
14、ing value,int startIndex,int count) 在上述重載形式中,其參數(shù)含義如下: Value:待定位的字符或者子串。 startIndex:在總串中開(kāi)始搜索的起始位置。 Count:在總串中從起始位置開(kāi)始搜索的字符數(shù)。 2022-6-2416C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String下例在“Hello”中尋找字符“l(fā)”第一次出現(xiàn)的位置。 /Indexof Console.WriteLine(strA.IndexOf(l);/2 同IndexOf類似,LastIndexOf用于搜索在一個(gè)字符串中,某個(gè)特定的字符或子串最后一次出現(xiàn)的位置,其方法定義和返回值都與
15、IndexOf相同。2022-6-2417C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(3 3)IndexOfAny/LastIndexOfAnyIndexOfAny/LastIndexOfAny IndexOfAny方法功能同IndexOf類似,區(qū)別在于,可以搜索在一個(gè)字符串中,出現(xiàn)在一個(gè)字符數(shù)組中的任意字符第一次出現(xiàn)的位置。2022-6-2418C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String下例在“Hello”中尋找字符“l(fā)”第一次和最后一次出現(xiàn)的位置。 /IndexofAny|LastIndexOfAny char anyOf=H,e,l; Console.WriteL
16、ine(strA.IndexOfAny(anyOf);/0 Console.WriteLine(strA.LastIndexOfAny(anyOf);/3 同IndexOfAny類似,LastIndexOfAny用于搜索在一個(gè)字符串中,出現(xiàn)在一個(gè)字符數(shù)組中任意字符最后一次出現(xiàn)的位置。 2022-6-2419C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String3. 3. 格式化字符串格式化字符串Format方法用于創(chuàng)建格式化的字符串以及連接多個(gè)字符串對(duì)象。Foramt方法也有多個(gè)重載形式,最常用的為: public static string Format(string format,para
17、ms object args); 其中,參數(shù)format用于指定返回字符串的格式,而args為一系列變量參數(shù)。 2022-6-2420C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String/Format newStr=; newStr=String.Format(0,1!,strA,strB); Console.WriteLine(newStr);/Hello,World! 在format參數(shù)中包含一些用大括號(hào)括起來(lái)的數(shù)字,如0、1,這些數(shù)字分別一一對(duì)應(yīng)于args參數(shù)數(shù)組中的變量。在生成結(jié)果字符串時(shí),將使用這些變量代替i。需要說(shuō)明的是,這些變量并不要求必須為String類型。 2022-6-2
18、421C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String例如,想要輸出一定格式的時(shí)間字符串,便可以使用Format方法,如下面代碼所示。 newStr=String.Format(CurrentTime=0:yyyy-MM-dd,System.DateTime.Now); Console.WriteLine(newStr);/形如:2008-09-19 其中,格式字符串“yyyy-MM-dd”指定返回時(shí)間的格式形如“2008-09-19”。 2022-6-2422C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String4. 4. 連接字符串連接字符串(1 1) ConcatConcat方法方
19、法 Concat方法用于連接兩個(gè)或多個(gè)字符串/Concat newStr=; newStr=String.Concat(strA, ,strB); Console.WriteLine(newStr);/“Hello World 2022-6-2423C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(2 2)JoinJoin方法方法 Join方法利用一個(gè)字符數(shù)組和一個(gè)分隔符串構(gòu)造新的字符串。常用于把多個(gè)字符串連接在一起,并用一個(gè)特殊的符號(hào)來(lái)分隔開(kāi)。Join方法的常用形式為: public static string Join(string separator,string values);
20、 其中,參數(shù)separator為指定的分隔符,而values用于指定所要連接的多個(gè)字符串?dāng)?shù)組。2022-6-2424C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String下例用“”分隔符把“Hello”和“World”連起來(lái)。 /Join newStr=; String strArr=strA,strB; newStr=String.Join(,strArr); Console.WriteLine(newStr);/HelloWorld 2022-6-2425C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(3 3)連接運(yùn)算符)連接運(yùn)算符“+ +”String支持連接運(yùn)算符“+”,可以方
21、便地連接多個(gè)字符串。例如,下例把“Hello”和“World”連接起來(lái)。 /+ newStr=; newStr=strA+strB; Console.WriteLine(newStr);/HelloWorld 2022-6-2426C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String5. 5. 分隔字符串分隔字符串使用Split方法可以把一個(gè)整串,按照某個(gè)分隔符,分裂成一系列小的字符串。例如,把整串,按照某個(gè)分隔符,分裂成一系列小的字符串。例如,把整串“HelloWorld”按照字符“”進(jìn)行分裂,可以得到3個(gè)小的字符串,即“Hello”、“”(空串)和“World”。Split方法最常用的形
22、式為: public string Split(params char separator); 其中,參數(shù)separator數(shù)組包含分隔符。2022-6-2427C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String/Split newStr=HelloWorld; char separator=; String splitStrings=new String100; splitStrings=newStr.Split(separator); int i=0; while(isplitStrings.Length) Console.WriteLine(item0:1,i,splitString
23、si); i+; 輸出結(jié)果如下: Item0:Hello Item1: Item2:World 2022-6-2428C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String6. 6. 插入和填充字符串插入和填充字符串String類包含了在一個(gè)字符串中插入新元素的方法,可以用Insert方法在任意插入任意字符。 Insert方法用于在一個(gè)字符串的指定位置插入另一個(gè)字符串,從而構(gòu)造一個(gè)新的串。Insert方法最常用的為: public string Insert(int startIndex,string value); 其中,參數(shù)startIndex用于指定所要插入的位置,從開(kāi)始索引;value
24、指定所要插入的字符串。2022-6-2429C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String下例中,在“Hello”的字符“H”后面插入“World”,構(gòu)造一個(gè)串“HWorldello”。 /Insert newStr=; newStr=strA.Insert(1,strB); Console.WriteLine(newStr);/HWorldello 2022-6-2430C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String7. 7. 刪除和剪切字符串刪除和剪切字符串String類包含了刪除一個(gè)字符串的方法??梢杂肦emove方法在任意位置刪除任意長(zhǎng)度的字符。也可以使用Trim/Tr
25、imeEnd/TrimStart方法剪切掉字符串中的一些特定字符。 2022-6-2431C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(1 1)RemoveRemove方法方法 Remove方法從一個(gè)字符串的指定位置開(kāi)始,刪除指定數(shù)量的字符。最常用的形式為: public string Remove(int startIndex,int count); 其中,參數(shù)startIndex用于指定開(kāi)始刪除的位置,從開(kāi)始索引;count指定刪除的字符數(shù)量。下例中,把“Hello”中的“ell”刪掉。 /Remove newStr=; newStr=strA.Remove(1,3); Cons
26、ole.WriteLine(newStr);/Ho 2022-6-2432C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(2 2)Trim/Trim/TrimStart/TrimEndTrimStart/TrimEnd方法方法 若想把一個(gè)字符串首尾處的一些特殊字符剪切掉,如去掉一個(gè)字符串首尾的空格等,可以使用String的Trim()方法。其形式如下: public string Trim() public string Trim(params char trimChars) 其中,參數(shù)trimChars數(shù)組包含了指定要去掉的字符,如果缺省,則刪除空格符號(hào)。下例中,實(shí)現(xiàn)了對(duì)“Hello
27、#$”的凈化,去掉首尾的特殊符號(hào)。 2022-6-2433C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String/Trim newStr=; char trimChars=,#,$, ; String strC=Hello# $; newStr=strC.Trim(trimChars); Console.WriteLine(newStr);/Hello 另外,同Trim類似,TrimStart和TrimEnd分別剪切掉一個(gè)字符串開(kāi)頭和結(jié)尾處的特殊字符。 2022-6-2434C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String8. 8. 復(fù)制字符串復(fù)制字符串String類包括了復(fù)制字符串方法
28、Copy和CopyTo,可以完成對(duì)一個(gè)字符串及其一部分的復(fù)制操作。 2022-6-2435C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(1 1)CopyCopy方法方法 若想把一個(gè)字符串復(fù)制到另一個(gè)字符數(shù)組中,可以使用String的靜態(tài)方法Copy來(lái)實(shí)現(xiàn),其形式為: public string Copy(string str); 其中,參數(shù)str為需要復(fù)制的源字符串,方法返回目標(biāo)字符串。下例中,把strA字符串“Hello”復(fù)制到newStr中。 /Copy newStr=; newStr=String.Copy(strA); Console.WriteLine(newStr);/H
29、ello 2022-6-2436C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String(2 2)CopyToCopyTo方法方法 CopyTo方法可以實(shí)現(xiàn)Copy同樣的功能,但功能更為豐富,可以復(fù)制字符串的一部分到一個(gè)字符數(shù)組中。其形式為: public void CopyTo(int sourceIndex,char destination,int destinationIndex,int count); 其中,參數(shù)sourceIndex為需要復(fù)制的字符起始位置,destination為目標(biāo)字符數(shù)組,destinationIndex指定目標(biāo)數(shù)組中的開(kāi)始存放位置,而count指定要復(fù)制的字符個(gè)
30、數(shù)。2022-6-2437C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String下例中,把strA字符串“Hello”中的“ell”復(fù)制到newCharArr中,并在newCharArr中從第2個(gè)元素開(kāi)始存放。 /CopyTo char newCharArr=new char100; strA.CopyTo(2,newCharArr,0,3); Console.WriteLine(newCharArr);/”llo 2022-6-2438C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String9. 9. 替換字符串替換字符串想要替換一個(gè)字符串中的某些特定字符或者某個(gè)子串,可以使用Replace方
31、法來(lái)實(shí)現(xiàn),其形式為: public string Replace(char oldChar, char newChar); public string Replace(string oldValue, string newValue); 其中,參數(shù)oldChar和oldValue為待替換的字符和子串,而newChar和newValue為替換后的新字符和新子串。下例把“Hello”通過(guò)替換變?yōu)椤癏ero”。 /Replace newStr=strA.Replace(ll,r); Console.WriteLine(newStr);/Hero 2022-6-2439C#程序設(shè)計(jì)實(shí)用教程7.1.1
32、靜態(tài)字符串String10. 10. 更改大小寫(xiě)更改大小寫(xiě)String提供了方便轉(zhuǎn)換字符串中所有字符大小寫(xiě)的方法ToUpper和ToLower。下例首先把“Hello”轉(zhuǎn)換為“HELLO”,然后再變?yōu)樾?xiě)形式“hello”。 /ToUpper|ToLower newStr=strA.ToUpper(); Console.WriteLine(newStr);/HELLO newStr=strA.ToLower(); Console.WriteLine(newStr);/hello 2022-6-2440C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String補(bǔ)充:提取子串補(bǔ)充:提取子串利用字符串的
33、提取子串方法Substring,就可從一個(gè)字符串中得到子字符串。Substring方法有兩個(gè)參數(shù),第一個(gè)參數(shù)指出從第幾個(gè)位置開(kāi)始截取,第二個(gè)參數(shù)指出共提取幾個(gè)字符。截取以后的子串是另外一個(gè)字符串,而不是原來(lái)的字符串截短,原來(lái)的字符串不變。2022-6-2441C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串Stringusing System;using System;class SubStringclass SubString public static void Main() public static void Main() string strOriginal = I loves China
34、!; string strOriginal = I loves China!; string strSub = strOriginal.Substring(2, 12); string strSub = strOriginal.Substring(2, 12); Console.WriteLine(strOriginal: + strOriginal); Console.WriteLine(strOriginal: + strOriginal); Console.WriteLine(strSub: + strSub); Console.WriteLine(strSub: + strSub);
35、string strTemp; string strTemp; for (int i = 0; i strOriginal.Length; i += 2) for (int i = 0; i strOriginal.Length; i += 2) strTemp = strOriginal.Substring(i, 1); strTemp = strOriginal.Substring(i, 1); Console.Write(strTemp); Console.Write(strTemp); 2022-6-2442C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String程序運(yùn)行結(jié)果如下:程序運(yùn)
36、行結(jié)果如下:2022-6-2443C#程序設(shè)計(jì)實(shí)用教程7.1.1 靜態(tài)字符串String11. String11. String小結(jié)小結(jié)本節(jié)介紹了最常用的String類,并從比較、定位子串、格式化、連接、分裂、插入、刪除、復(fù)制、大小寫(xiě)轉(zhuǎn)換10個(gè)方面介紹了其方法和應(yīng)用。 之所以稱String對(duì)象為靜態(tài)串,是因?yàn)橐坏┒x一個(gè)String對(duì)象,就是不可改變的。在使用其方法(如插入、刪除操作)時(shí),都要在內(nèi)存中創(chuàng)建一個(gè)新的String對(duì)象,而不是在原對(duì)象的基礎(chǔ)上進(jìn)行修改,這就需要開(kāi)辟新的內(nèi)存空間。如果需要經(jīng)常進(jìn)行串修改操作,使用String類無(wú)疑是非常耗費(fèi)資源的,這時(shí)需要使用StringBuilder類
37、。2022-6-2444C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder與String類相比,System.Text.StringBuilder類可以實(shí)現(xiàn)動(dòng)態(tài)字符串。此外,動(dòng)態(tài)的含義是指在修改字符串時(shí),系統(tǒng)不需要?jiǎng)?chuàng)建新的對(duì)象,不會(huì)重復(fù)開(kāi)辟新的內(nèi)存空間,而是直接在原StringBuilder對(duì)象的基礎(chǔ)上進(jìn)行修改。2022-6-2445C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder1. 1. 聲明聲明StringBuilderStringBuilder串串StringBuilder類位于命名空間System.Text中,使用時(shí),可以在文件頭通過(guò)usin
38、g語(yǔ)句引入該命名空間:using System.Text; 聲明StringBuilder對(duì)象需要使用new關(guān)鍵字,并可以對(duì)其進(jìn)行初始化。如以下語(yǔ)句聲明了一個(gè)StringBuilder對(duì)象myStringBuilder,并初始化為“Hello”: StringBuilder myStringBuilder=new StringBuilder(Hello); 2022-6-2446C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder2. 2. 設(shè)置設(shè)置StringBuilderStringBuilder容量容量StringBuilder對(duì)象為動(dòng)態(tài)字符串,可以對(duì)其設(shè)置好的字符數(shù)量
39、進(jìn)行擴(kuò)展。另外,還可以設(shè)置一個(gè)最大長(zhǎng)度,這個(gè)最大長(zhǎng)度稱為該StringBuilder對(duì)象的容量(Capacity)。2022-6-2447C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder有兩種方式來(lái)設(shè)置一個(gè)StringBuilder對(duì)象的容量。(1 1)使用構(gòu)造函數(shù))使用構(gòu)造函數(shù)StringBuilder構(gòu)造函數(shù)可以接受容量參數(shù),例如,下面聲明一個(gè)StringBuilder對(duì)象sb2,并設(shè)置其容量為100。/使用構(gòu)造函數(shù)StringBuilder sb2=new StringBuilder(Hello,100); 2022-6-2448C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)
40、態(tài)字符串StringBuilder(2 2)使用)使用CapacityCapacity讀讀/ /寫(xiě)屬性寫(xiě)屬性Capacity屬性指定StringBuilder對(duì)象的容量。例如下面語(yǔ)句首先一個(gè)StringBuilder對(duì)象sb3,然后利用Capacity屬性設(shè)置其容量為100。/使用Capacity屬性StringBuilder sb3=new StringBuilder(Hello); sb3.Capacity=100; 2022-6-2449C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder3. 3. 追加操作追加操作追加一個(gè)StringBuilder是指將新的字符串添加
41、到當(dāng)前StringBuilder字符串的結(jié)尾處,可以使用Append和AppendFormat來(lái)實(shí)現(xiàn)這個(gè)功能。(1 1)AppendAppend方法方法下例中,把一個(gè)StringBuilder字符串“Hello”追加為“Hello World!”。/Append StringBuilder sb4=new StringBuilder(Hello); sb4.Append( World!); Console.WriteLine(sb4);/Hello World! 2022-6-2450C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder(2 2)AppendFormatApp
42、endFormat方法方法AppendFormat方法可以實(shí)現(xiàn)對(duì)追加部分字符串的格式化,可以定義變量的格式,并將格式化后的字符串追加在StringBuilder后面。2022-6-2451C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder4. 4. 插入操作插入操作StringBuilder的插入操作是指將新的字符串插入到當(dāng)前的StringBuilder字符串的指定位置,如“Hello”變?yōu)椤癏eeeello”??梢允褂肧tringBuilder類的Insert方法來(lái)實(shí)現(xiàn)這個(gè)功能,常用形式為:public StringBuilder Insert(int index, ob
43、ject value); 其中,參數(shù)index指定所要插入的位置,并從0開(kāi)始索引,如index=1,則會(huì)在原字符串的第2個(gè)字符之前進(jìn)行插入操作;同Append一樣,參數(shù)value并不僅是只可取字符串類型。2022-6-2452C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder下例中,把一個(gè)StringBuilder字符串“Hello”通過(guò)插入操作修改為“Heeeello”。/Insert StringBuilder sb6=new StringBuilder(Hello); sb6.Insert(2,eee); Console.WriteLine(sb6);/Heeeell
44、o 2022-6-2453C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder5. 5. 刪除操作刪除操作StringBuilder的刪除操作可以從當(dāng)前StringBuilder字符串的指定位置,刪除一定數(shù)量的字符,例如把“ H e e e e l l o ” 變 為 “ H e l l o ” 。 可 以 使 用StringBuilder類的Remove方法來(lái)實(shí)現(xiàn)這個(gè)功能,常用形式為:public StringBuilder Remove(int startIndex, int length); 其中,參數(shù)startIndex指定所要?jiǎng)h除的起始位置,其含義同Insert中的
45、index相同;length參數(shù)指定所要?jiǎng)h除的字符數(shù)量。2022-6-2454C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder下例中,把一個(gè)StringBuilder字符串“Heeeello”通過(guò)刪除操作修改為“Hello”。/Remove StringBuilder sb7=new StringBuilder(Heeello); sb7.Remove(2,2);/在”He”后面刪除個(gè)字符Console.WriteLine(sb7); /Hello! 2022-6-2455C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder6. 6. 替換操作替換操作S
46、tringBuilder使用Replace方法來(lái)實(shí)現(xiàn)替換操作,例如把“Hello”變?yōu)椤癏ero”,就需要使用替換操作,將“l(fā)l”替換為“r”。這同String類的Replace方法非常類似,其常用形式包括:public StringBuilder Replace(char oldChar, char newChar); public StringBuilder Replace(string oldValue, string newValue); 其中,參數(shù)oldChar和oldValue為待替換的字符和子串,而newChar和newValue為替換后的新字符和新子串。2022-6-2456C
47、#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder下例把“Hello”通過(guò)替換為“Hero”。/Replace StringBuilder sb8=new StringBuilder(Hello); sb8=sb8.Replace(ll,r); Console.WriteLine(sb8);/Hero 2022-6-2457C#程序設(shè)計(jì)實(shí)用教程 7.1.2 動(dòng)態(tài)字符串StringBuilder7. 7. 與與StringString比較比較可以看出StringBuilder與String在許多操作上是非常相似的。而在操作性能和內(nèi)存效率方面,StringBuilder要比Str
48、ing好得多。而另一方面,String類提供了更多的方法,可以使開(kāi)發(fā)能夠更快地實(shí)現(xiàn)應(yīng)用。在兩者的選擇上,如果應(yīng)用對(duì)于系統(tǒng)性能、內(nèi)存要求比較嚴(yán)格,以及經(jīng)常處理大規(guī)模的字符串,推薦使用StringBuilder對(duì)象;否則,可以選擇使用String。2022-6-2458C#程序設(shè)計(jì)實(shí)用教程 7.2 數(shù)組數(shù)組數(shù)組的作用非常強(qiáng)大,數(shù)據(jù)也是基本數(shù)據(jù)結(jié)構(gòu)之一,是編程實(shí)現(xiàn)過(guò)程中必不可少的要素之一。2022-6-2460C#程序設(shè)計(jì)實(shí)用教程 7.2.1 數(shù)組的概念數(shù)組(Array)是一種數(shù)據(jù)結(jié)構(gòu),一個(gè)數(shù)組由若干個(gè)類型相同的數(shù)組元素的變量,這些變量可以通過(guò)一個(gè)數(shù)組名和數(shù)組下標(biāo)(或者稱為索引)來(lái)訪問(wèn)。C#中的數(shù)組
49、下標(biāo)是從零開(kāi)始,數(shù)組中的所在元素都具有相同的類型。在數(shù)組中,每一個(gè)成員叫做數(shù)組元素,數(shù)組元素的類型稱為數(shù)組類型,數(shù)組類型可以是C#中定義的任意類型,其中也包括數(shù)組類型本身。如果一個(gè)數(shù)組的類型不是數(shù)組類型,稱之為一維數(shù)組。如果數(shù)組元素的類型是數(shù)組類型,就稱之為多維數(shù)組,也就是說(shuō),數(shù)組定義可以嵌套。2022-6-2461C#程序設(shè)計(jì)實(shí)用教程 7.2.1 數(shù)組的概念無(wú)論是一維數(shù)組還是多維數(shù)組,每個(gè)維的下標(biāo)都是從0開(kāi)始,結(jié)束于這個(gè)維的數(shù)組長(zhǎng)度減1。數(shù)組被用于各種目的,因?yàn)樗峁┝艘环N高效、方便的手段將相同類型的變量合成一組。例如,可以用數(shù)組保存一個(gè)月中每天的溫度記錄,貨物平均價(jià)格的記錄。數(shù)組的主要優(yōu)點(diǎn)
50、是,通過(guò)這樣的一種方式組織數(shù)據(jù)使得數(shù)據(jù)容易被操縱。例如,有一個(gè)數(shù)組,它包括選定的一組學(xué)生的數(shù)學(xué)成績(jī),操作該數(shù)組,很容易計(jì)算其平均數(shù)學(xué)成績(jī)。而且數(shù)據(jù)以這樣的方式組織數(shù)據(jù),會(huì)很容易實(shí)現(xiàn)對(duì)數(shù)據(jù)的排序。2022-6-2462C#程序設(shè)計(jì)實(shí)用教程 7.2.1 數(shù)組的概念在實(shí)際使用數(shù)據(jù)的過(guò)程中,一般是先確定數(shù)據(jù)類型,然后根據(jù)實(shí)際情況確定數(shù)組的長(zhǎng)度。C#中的數(shù)組是由System.Array類派生而來(lái)的引用對(duì)象,因此可以使用Array類的方法來(lái)進(jìn)行各種操作。另外,數(shù)組常常用來(lái)實(shí)現(xiàn)靜態(tài)的操作,即不改變其空間大小,如查找、遍歷等。數(shù)組也可以實(shí)現(xiàn)動(dòng)態(tài)的操作、如插入、刪除等,但不推薦使用,而應(yīng)盡量使用集合來(lái)代替。20
51、22-6-2463C#程序設(shè)計(jì)實(shí)用教程7.2.2 System.Array類System.Array類是C#中各種數(shù)組的基類,其常用屬性和方法的簡(jiǎn)單說(shuō)明如表7-1所示。2022-6-2464C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組由具有一個(gè)下標(biāo)的數(shù)組元素所構(gòu)成的數(shù)組就是一維數(shù)組,一維數(shù)組是簡(jiǎn)單的數(shù)組。例如:為了記錄50個(gè)銀行儲(chǔ)蓄用戶的賬號(hào),就可以使用一個(gè)長(zhǎng)度為50的一維數(shù)組來(lái)處理。一維數(shù)組比較直觀,使用起來(lái)相對(duì)容易。2022-6-2465C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組1. 1. 一維數(shù)組的定義一維數(shù)組的定義數(shù)據(jù)在使用前使用先進(jìn)行定義。定義一維數(shù)組的格式如下:數(shù)據(jù)類型數(shù)組名:其中數(shù)組類
52、型為各種數(shù)據(jù)類型,它表示數(shù)據(jù)元素的類型;數(shù)組名可以是C#合法的標(biāo)識(shí)符;在數(shù)組名與數(shù)據(jù)類型之間是一組空的方括號(hào)。例如:char charArr; /定義了一個(gè)字符型的一維數(shù)組int intArr; /定義了一個(gè)整型一維數(shù)組string strArr; /定義了一個(gè)字符串類型一維數(shù)組在定義數(shù)組后,必須對(duì)其進(jìn)行初始化才能使用;初始化數(shù)組有兩種方法,即動(dòng)態(tài)初始化和靜態(tài)初始化。2022-6-2466C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組2. 2. 動(dòng)態(tài)初始化動(dòng)態(tài)初始化動(dòng)態(tài)初始化需要借助new運(yùn)算符,為數(shù)組元素分配內(nèi)存空間,并為數(shù)據(jù)元素賦初始值。動(dòng)態(tài)初始化數(shù)組的格式如下:數(shù)組名=new 數(shù)據(jù)類型數(shù)組長(zhǎng)度
53、;在C#中,可以將數(shù)組定義與動(dòng)態(tài)初始化合在一起,格式如下:數(shù)據(jù)類型數(shù)組名=new 數(shù)據(jù)類型數(shù)組長(zhǎng)度;2022-6-2467C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組例如:int intArr=new int5;上面的語(yǔ)句定義了一個(gè)整型數(shù)組,它包含從intArr0到intArr4這5個(gè)元素。New運(yùn)算符用于創(chuàng)建數(shù)組,并用默認(rèn)值對(duì)數(shù)據(jù)元素進(jìn)行初始化。在本例中,所有數(shù)組元素的值都被初始化為0。當(dāng)然,用戶也可以為其賦予初始化值,程序代碼如下:int intArr=new int53,6,9,2,10;此時(shí)數(shù)組元素的初始化值就是大括號(hào)中列出的元素值。2022-6-2468C#程序設(shè)計(jì)實(shí)用教程7.2.3 一
54、維數(shù)組定義其他類型的數(shù)組的方法是一樣的,如下面的語(yǔ)句用于定義一個(gè)存儲(chǔ)10個(gè)字符串元素的數(shù)組,并對(duì)其進(jìn)行初始化:string strArr=new string10;在本例中,strArr數(shù)組中所有數(shù)組元素的初始值都為“”。2022-6-2469C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組3. 3. 靜態(tài)初始化靜態(tài)初始化靜態(tài)初始化數(shù)組時(shí),必須與數(shù)組定義結(jié)合在一起,否則程序就會(huì)報(bào)錯(cuò)。靜態(tài)初始化數(shù)組的格式如下:數(shù)據(jù)類型 數(shù)據(jù)名=元素1,元素2;用這種方法對(duì)數(shù)組進(jìn)行初始化時(shí),無(wú)須說(shuō)明數(shù)組元素的個(gè)數(shù),只需按順序列出數(shù)組中的全部元素即可,系統(tǒng)會(huì)自動(dòng)計(jì)算并分配數(shù)組所需的內(nèi)存空間。例如:int intArr=3,
55、6,9,2,10;string strArr=“English”,”Maths”,”Computer”,”Chinese”;2022-6-2470C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組4. 4. 關(guān)于一維數(shù)據(jù)初始化的幾點(diǎn)說(shuō)明關(guān)于一維數(shù)據(jù)初始化的幾點(diǎn)說(shuō)明(1 1)動(dòng)態(tài)初始化數(shù)組時(shí),可以把定義與初始化分開(kāi)在不同的語(yǔ)句中者,例如:int intArr; /定義數(shù)組intArr=new int5; /動(dòng)態(tài)初始化,初始化元素的值均為0或者intArr=new int5 3,6,9,2,10;此時(shí),在new int53,6,9,2,10這條語(yǔ)句中,方括號(hào)中表示數(shù)組元素個(gè)數(shù)的“”可以省略,因?yàn)楹竺娲罄ㄌ?hào)中
56、已列出了數(shù)組中的全部元素。2022-6-2471C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組4. 4. 關(guān)于一維數(shù)據(jù)初始化的幾點(diǎn)說(shuō)明關(guān)于一維數(shù)據(jù)初始化的幾點(diǎn)說(shuō)明(2 2)靜態(tài)初始化數(shù)組必須與數(shù)組結(jié)合在一條語(yǔ)句中,否則程序就會(huì)出錯(cuò)。(3 3)在數(shù)組初始化語(yǔ)句中,如果大括號(hào)中已明確列出了數(shù)組中的元素,即確定了元素個(gè)數(shù),則表示數(shù)組元素個(gè)數(shù)的數(shù)值(即方括號(hào)中的數(shù)值)必須是常量,并且該數(shù)值必須與數(shù)組元素個(gè)數(shù)一致。2022-6-2472C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組5. 5. 訪問(wèn)一維數(shù)組中的元素訪問(wèn)一維數(shù)組中的元素在C#中是通過(guò)數(shù)組名和下標(biāo)值來(lái)訪問(wèn)數(shù)組元素的。在訪問(wèn)數(shù)組元素時(shí),其下標(biāo)可以是一個(gè)整型
57、常量或整型表達(dá)式。例如,下面的數(shù)組元素的下標(biāo)都是合法的:intArr3,strArr0,intArrj,strArr2*i-1在實(shí)際的程序設(shè)計(jì)中,也可能導(dǎo)致下標(biāo)值超越正常取值 范 圍 。 如 果 下 標(biāo) 越 界 , 將 會(huì) 拋 出 一 個(gè)System.IndexOutOfRangeException的異常。2022-6-2473C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組【例例7-17-1】給定8個(gè)數(shù):8、7、6、5、4、3、2、1,將這些數(shù)存在數(shù)組中,并將其按從小到大的順序輸出。(1)定義一個(gè)數(shù)組,如數(shù)組名為QueArrey,并將其用給定的數(shù)進(jìn)行初始化。(2)遍歷數(shù)組,將8個(gè)數(shù)中最小的數(shù)找出來(lái),
58、與第個(gè)位置上的數(shù)對(duì)調(diào)。其方法是:先找出存放最小的數(shù)組元素的下標(biāo),將其存放在變量temp中,然后將QueArray0和QueArraytemp中的數(shù)對(duì)調(diào),使QueArray0中存放的是個(gè)數(shù)中最小的數(shù)。(3)再?gòu)牡趥€(gè)數(shù)到第個(gè)數(shù)中找出最小的數(shù),并按步驟(2)中的方法,將最小的數(shù)與第個(gè)位置上的數(shù)對(duì)調(diào),使QueArray1中存放的是第2小的數(shù)。(4)依次類推,完成整個(gè)排序過(guò)程,并輸出結(jié)果。2022-6-2474C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組程序代碼如下:using System;namespace ArraySort class ArraySort static void Main() int
59、 i, j, temp, m; int QueArray = new int 8, 7, 6, 5, 4, 3, 2, 1 ; for (j = 0; j QueArray.Length; j+) temp = j;2022-6-2475C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組 for (i = j + 1; i QueArray.Length; i+)/從j的下一個(gè)元素起開(kāi)始比較 if(QueArrayiQueArraytemp)/比較數(shù)組元素 temp = i; /使temp為較小的數(shù)的下標(biāo) if(temp!=j) /*交換QueArraytemp和QueArrayj的值, 從而可以從所比
60、較的數(shù)組元素中獲得較小 的婁賦給QueArrayj*/ m = QueArrayj; QueArrayj=QueArraytemp; QueArraytemp=m; 2022-6-2476C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組Console.WriteLine(輸出排序后的結(jié)果:); for(j=0;jQueArray.Length;j+) Console.Write(0 ,QueArrayj); 執(zhí)行該程序后,程序輸出結(jié)果如下:1 2 3 4 5 6 7 82022-6-2477C#程序設(shè)計(jì)實(shí)用教程7.2.3 一維數(shù)組注意:注意:(1)除了可以顯式地指出數(shù)組長(zhǎng)度之外,更好的做法是使用Sys
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘋(píng)果素描課件教學(xué)課件
- 質(zhì)量方針目標(biāo)培訓(xùn)課件
- 內(nèi)分泌治療儀設(shè)備使用
- 學(xué)涯規(guī)劃演講
- 你好法語(yǔ)課件教學(xué)課件
- 企業(yè)文化工作規(guī)劃行動(dòng)方案
- 高三化學(xué)一輪復(fù)習(xí) 原電池課件
- 第二章 相互作用-共點(diǎn)力的平衡 2025年高考物理基礎(chǔ)專項(xiàng)復(fù)習(xí)
- 3.4 1沉淀溶解平衡 課件 高二上學(xué)期化學(xué)人教版(2019)選擇性必修1
- 防臺(tái)風(fēng)暴雨演練動(dòng)員大會(huì)
- 淺論新時(shí)代基層行政管理中依法行政問(wèn)題及對(duì)策-以某市為例 法學(xué)專業(yè)
- 高中學(xué)生創(chuàng)新思維能力現(xiàn)狀調(diào)查問(wèn)卷
- 洞口封堵工程(混凝土樓板)施工方案
- 臨時(shí)便道施工方案47107
- 部編版五年級(jí)語(yǔ)文上冊(cè)單元教材分析全冊(cè)1-8單元
- 資產(chǎn)評(píng)估案例分析-——以貴州茅臺(tái)酒股份有限公司為例
- TDS-3000B(示波器使用基礎(chǔ)知識(shí))ppt課件
- 《項(xiàng)目管理標(biāo)準(zhǔn)化手冊(cè)》中交一航局
- (完整版)英語(yǔ)專八英美文學(xué)常識(shí)匯總
- (完整版)六宮格數(shù)獨(dú)100題
- 服裝專賣店設(shè)計(jì)(課堂PPT)
評(píng)論
0/150
提交評(píng)論