程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#入門之列舉和構造體應用詳解(掌握台吸收字符串以相反的偏向輸入)

c#入門之列舉和構造體應用詳解(掌握台吸收字符串以相反的偏向輸入)

編輯:C#入門知識

c#入門之列舉和構造體應用詳解(掌握台吸收字符串以相反的偏向輸入)。本站提示廣大學習愛好者:(c#入門之列舉和構造體應用詳解(掌握台吸收字符串以相反的偏向輸入))文章只能為提供參考,不一定能成為您想要的結果。以下是c#入門之列舉和構造體應用詳解(掌握台吸收字符串以相反的偏向輸入)正文


列舉、構造
列舉的類型無限(short、byte...)且是雷同的,在MSDN上找到列舉的一些示例,認為這個還不錯:


enum myWeekDay { Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday };
int i = 3;
myWeekDay today = (myWeekDay)i;

列舉是須要先聲明的,然後再經由過程新建一個變量(today)為列舉類型來應用。列舉默許的根本類型值從0開端,遞增1,這叫等差數列。

列舉聲明時,建議放在定名空間,固然,也能夠放在類或構造中。將其它變量賦值給列舉類型時,須要強迫轉換,例如:today = (myWeekDay)myByte。固然,還有Enum.Parse(typeof(),)敕令,就不詳細研討了,用時再來看。

而構造(struct)就比擬好用了,一個構造內支撐分歧基本數據類型。異樣須要先聲明構造,然後再聲明變量為該構造類型,從而應用:


enum orientation : byte { north = 1, south = 2, east = 3, west = 4};
struct route
{
    public orientation direction;
    public double distance;
}

應用public:讓挪用該構造的代碼可以拜訪該構造的成員。詳細運用:


route myRoute;
int myDirection = -1;
double myDistance;
Console.WriteLine("1) North\n2) South\n3) East\n4) West");
do
{
    Console.WriteLine("請選擇一個行駛偏向:");
    myDirection = Convert.ToInt32(Console.ReadLine());
} while (myDirection < 1 || myDirection > 4);
Console.WriteLine("請輸出一個間隔:");
myDistance = Convert.ToDouble(Console.ReadLine());
myRoute.direction = (orientation)myDirection;
myRoute.distance = myDistance;
Console.WriteLine("指定偏向 {0} 的間隔是 {1}", myRoute.direction, myRoute.distance);

留意myRoute.direction = (orientation)myDirection這一行代碼,應當是列舉的運用場景:只須要指明列舉值中的根本類型值i,再經由過程(enumName)i的方法,便可獲得對應的字符串。

聲明一個構造:route(創立的構造名) myRoute,再經由過程 myRoute.屬性 的方法拜訪構造中的成員。

數組

印象中的數組老是比擬龐雜的東東。一個不錯的例子:須要存儲10個同窗的姓名,應用數組便可簡略處理,起首聲明數組:


string[] friendNames = new string [arrayCount];
string[] friendNames = {"張三","李四","王五","謝六","陳七"};

第一行只初始化數組年夜小,可選 常數 或 常量,初始化後,才可以使用friendNames[0]的方法為數組元素賦值。第二行直接聲明數組,而且初始化了數組的內容。

可以使用for輪回,合營friendNames.Length的年夜小,來拜訪數組值,留意第1個元素的地位是0。也可以使用foreach,而且不擔憂超越數組規模。foreach與for的差別在於,foreach是只讀拜訪。


foreach (string myStr in friendNames)
{
    Console.WriteLine(myStr);
}

多維數組分為矩形數組(多行的每行元素個數雷同)、鋸齒數組(多行的每行元素個數分歧,並能夠存在 {列1{行1{層1,層2},行2},列2...}),固然,異樣可使用foreach的方法,掏出一切元素的內容,多嵌套一個foreach便可:


int[][] jaggedIntArray = { new int[] { 1, 2, 3 }, new int[] { 4, 5 }, new int[] { 6, 7, 8, 9 }, new int[] {10, 11} };
foreach(int[] topArray in jaggedIntArray)
{
    foreach (int bottomArray in topArray)
    {
        Console.Write("{0} ", bottomArray);
    }
    Console.Write("\n");
}

留意:這兒用的都是[]或{},沒有效()的方法哈,不要總寫錯括號,很初級。

字符串處置
這個就成心思多了。可以經由過程myString[1]的方法拜訪字符串中的每一個字符,第1個字符位是0:


String myString = "  HeLlO WoRlD ";
char myChar = myString[1];

應用ToCharArray(),獲得一個分化myString每一個字符後的char數組:


char[] myChars = myString.ToCharArray();

還可使用myString.Length獲得字符串的數目,應用myString.ToLower()轉為年夜寫,myString.ToUpper()轉為小寫。留意:ToLower()、ToUpper()其實不會轉變變量自己的值的年夜小寫,還須要用myString = myString.ToLower()能力修正變量自己的值。

myString.Trim()可以去失落字符串前、後的空格,還有TrimStart()和TrimEnd(),分離去失落後面和前面的空格。還可使用Trim(myChar[])的方法,指定去除前後的內容不限於空格(char[] myChar = {' ','s'}):


myString = "  sfrost/110110200010101100-13090909880 ";
char mykg = ' ';
char[] myxhx = {'-','/'};
String[] myStrings = myString.Trim(mykg).Split(myxhx);
Console.WriteLine("myStrings[0] = {0}", myStrings[0]);
Console.WriteLine("myStrings[1] = {0}", myStrings[1]);
Console.WriteLine("myStrings[2] = {0}", myStrings[2]);

比來恰好在弄微信開辟,在C#中,下面這個例子,便可以完成以一個(些)症結字分化用戶輸出的小我信息。例子中應用的Split()辦法,異樣的可使用char數組來指明分化的標識。強調一下,Split分化字符串的地位可所以多個分歧標志的地位。

結語
從這章開端,許多內容都可以立時做一些小的課題了,呵呵。不論是列舉(同類型)、構造(成員分歧類型)、數組(一維、矩形[二維]、鋸齒[不規矩多維])、和字符串處置,還有列舉與通俗變量之間的值若何轉換,數組若何聲明、初始化和拜訪等等。而字符串的處置就太成心思了,特殊是split,還有replace,再運用char數組,可以說是如虎添翼啊。

附:習題案例

編寫一個掌握台運用法式,吸收用戶輸出的字符串,將字符串的次序以輸出時相反的偏向輸入:


Console.WriteLine("請輸出須要交流地位的字符串:");
String myString = Console.ReadLine().Trim();
Console.WriteLine("{0}", myString.Length);
String tmpStr = "";
for (int i = myString.Length; i > 0; i--)
{
    tmpStr += myString[i-1];
}
Console.WriteLine(tmpStr);

編寫一個掌握台運用法式,吸收用戶輸出的字符串,用yes調換字符串中的一切no:


Console.WriteLine("請輸出帶有no的字符串:");
myString = Console.ReadLine().ToLower().Trim();
Console.WriteLine("用 yes 調換失落 {0} 中的 no 後:{1}", myString, myString.WordStr("no", "yes"));

編寫一個掌握台運用法式,給字符串的每一個單詞加上引號(我認為,單詞間確定有空格):


Console.WriteLine("請輸出帶有空格的單詞:");
String myWord = Console.ReadLine().Trim();
String[] myWords = myWord.Split(' ');
myWord = "";
foreach(String tmpWord in myWords)
{
    myWord += "\"" + tmpWord + "\" ";
}
Console.WriteLine("添加引號後的句子:{0}", myWord);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved