亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#入門之枚舉和結構體使用詳解(控制臺接收字符串以相反的方向輸出)

2020-01-24 02:42:02
字體:
來源:轉載
供稿:網友

枚舉、結構
枚舉的類型有限(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.Replace("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);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
视频在线观看一区二区| 久久国产加勒比精品无码| 国内精品久久久久久久| 欧美美最猛性xxxxxx| 成人中文字幕+乱码+中文字幕| 欧美成人精品一区二区三区| 亚洲少妇激情视频| 久久69精品久久久久久国产越南| 日韩欧美成人网| 亚洲毛茸茸少妇高潮呻吟| 久久亚洲电影天堂| 中文字幕亚洲二区| 日韩激情在线视频| 日韩精品免费在线观看| 国产成人啪精品视频免费网| 亚洲精品福利资源站| 欧美日韩亚洲一区二| 日韩免费在线免费观看| 91免费观看网站| 欧洲午夜精品久久久| 性欧美暴力猛交69hd| 海角国产乱辈乱精品视频| 一区二区三区天堂av| 最近中文字幕日韩精品| 国产精品自在线| 成人做爰www免费看视频网站| 亚洲精品国精品久久99热| 动漫精品一区二区| 欧美黄网免费在线观看| 午夜精品久久久99热福利| 亚洲国产成人91精品| 97人人爽人人喊人人模波多| 91亚洲一区精品| 欧美精品激情视频| 亚洲欧美激情视频| 亚洲丝袜在线视频| 日本伊人精品一区二区三区介绍| 欧美精品一区在线播放| 国产精品羞羞答答| 欧美精品久久久久久久免费观看| 欧美精品第一页在线播放| 日韩在线观看免费全集电视剧网站| 久久久免费精品| 俺也去精品视频在线观看| 久久久久久国产精品三级玉女聊斋| 欧美主播福利视频| 欧美日韩国产丝袜另类| 国产999在线| 日韩第一页在线| 视频一区视频二区国产精品| 久久综合久久88| 久久精品国产99国产精品澳门| 国产精品视频自拍| 亚洲欧美在线免费| 国产精品自拍网| 国产精品6699| 欧美在线国产精品| 亚洲成人网久久久| 国产精品成人av性教育| 欧美大胆a视频| 欧美一级bbbbb性bbbb喷潮片| 国产成人av网| 日本韩国欧美精品大片卡二| 2019中文在线观看| 国产成人精品999| 欧美午夜视频一区二区| 亚洲国产精品热久久| 午夜精品福利在线观看| 久久夜色精品亚洲噜噜国产mv| 久久久亚洲国产天美传媒修理工| 国产香蕉97碰碰久久人人| 国产精品久久久久久久电影| 国产精品视频公开费视频| 色综合天天综合网国产成人网| 午夜精品视频在线| 欧美激情久久久久| 国产精品自拍小视频| 国产丝袜一区二区三区免费视频| 一本大道久久加勒比香蕉| 欧美性猛交xxxx久久久| 亚洲第一精品夜夜躁人人躁| 一区二区三区日韩在线| 日韩av在线看| 亚洲视频在线免费看| 国产精品高潮呻吟久久av无限| 97精品欧美一区二区三区| 亚洲欧美中文字幕在线一区| 亚洲免费成人av电影| 中文欧美日本在线资源| 国产欧美精品va在线观看| 欧美性资源免费| 国产精品视频一区国模私拍| 国产精品三级美女白浆呻吟| 最近2019中文字幕一页二页| 中文字幕精品av| 日韩av一区在线| 精品日本美女福利在线观看| 欧美大片欧美激情性色a∨久久| 精品国产精品三级精品av网址| 岛国av午夜精品| 国产精品偷伦视频免费观看国产| 欧美夫妻性视频| 国产成人激情小视频| 777午夜精品福利在线观看| 亚洲网站视频福利| 最近2019中文免费高清视频观看www99| 国内免费久久久久久久久久久| 欧美中文字幕视频在线观看| 色偷偷av亚洲男人的天堂| 91久久精品国产| 日韩电影大片中文字幕| 亚洲色图激情小说| 97国产精品视频| 在线丨暗呦小u女国产精品| 久久久久中文字幕| 欧美色视频日本版| 国产精品视频白浆免费视频| 九九综合九九综合| 亚洲网站在线看| 黑人巨大精品欧美一区二区免费| 色婷婷亚洲mv天堂mv在影片| 77777亚洲午夜久久多人| 欧美华人在线视频| 在线a欧美视频| 久久影视电视剧免费网站清宫辞电视| 色哟哟入口国产精品| 欧美激情精品久久久| 国产女人精品视频| 久久夜色精品国产| 日韩精品免费在线| 日韩欧美在线观看| 中文国产亚洲喷潮| 亚洲石原莉奈一区二区在线观看| 国产精品综合久久久| 久久资源免费视频| 国产精品99久久99久久久二8| 亚洲一区二区三区四区在线播放| 欧美精品一本久久男人的天堂| 日韩专区在线观看| 国产日韩中文在线| 久久久综合免费视频| 久久视频这里只有精品| 91人人爽人人爽人人精88v| 91精品国产99| 91精品久久久久久久久不口人| 日韩欧美一区二区三区久久| 久久天天躁日日躁| 日韩免费av片在线观看| 国产a∨精品一区二区三区不卡| 久久国产视频网站| 色偷偷88888欧美精品久久久| 国产精品久久久久久久久粉嫩av| 日韩成人在线观看| 国产精品入口免费视| 日韩在线免费av| 欧美电影免费观看大全| 欧美成人手机在线| 国产精品日日做人人爱| 俺去亚洲欧洲欧美日韩| 91久久嫩草影院一区二区| 亚洲国产精品视频在线观看| 久久久www成人免费精品| 欧美日韩一区二区免费在线观看| 亚洲乱码国产乱码精品精天堂|