字符串的分割
我們經常會遇到字符串的分割的問題,在后面制作播放器的時候,可以用現在學習的方法來分割歌詞。
下面我們來具體看下string[]Split(params char[] separator):將字符串按照指定的分割符分割為字符串數組:
圖一、字符串的分割
String[] Split(char[] separator, StringSplitOptions options)將字符串按照指定的char分隔符分割為字符串數組(options去RemoveEmptyEntries的時候移除結果中的空白字符串);
圖二、看看跟剛才有什么不一樣的地方
圖三、干掉空白項的
如果用戶輸入的是漢字,我們怎么把它提煉出來呢?
我們在學習的時候,重點研究string中的方法,因為在string中的方法還是比較全面的,這里詳細的介紹里面的基礎知識,供初學者參考,目的是為了讓大家在后面少走彎路。
下面我們看字符串函數中的其它常用方法。
字符串替換: String Replace(string oldValue,string newValue)將字符串中的出現oldValue的地方替換為newValue.例子:名字替換。
圖四、字符的替換
圖五、字符串的替換
取子字符串:string Substring(int startIndex),取從位置startIndex開始一直到最后的子字符串;
圖六、截取字符串
Substring();第一個重載 參數是int類型,給一個數字,就會從這個下標開始截取。截取到最后
Substring();第二個重載,兩個參數都是int類型,第一個參數是從哪個下標開始截取,第二個參數截取幾個字符串;
如果截取的個數超出字符串的長度會報異常
圖七、判斷字符串中是否含有這個字符串
Bool StartsWith(string value)判斷字符串是否以子串value開始;
圖八、判斷字符串是不是以川川開始的
Bool EndsWith(string value)判斷字符串是否以子串value結束;
圖九、從后往前判斷
和上面的那個方法正好相反,判斷是不是以某個字符串結尾
Int IndexOf(string value):取子串value第一次出現的位置。
圖十、查找字符串里面的e
一道面試題呦
stringBuilder(簡稱SB)和string的區別?
答:string在進行運算時(如賦值、拼接等)會產生一個新的實例,而StringBuilder則不會,所以在大量字符串拼接或頻繁對某一字符串進行操作時最好使用StringBuilder,不要使用String
如果要操作一個不斷增長的字符串,盡量不用string類 改用StringBuilder類,兩個類的工作原理不同 string類是一種傳統的修改字符串的方法,它確實可以完成把一個字符串添加到另一個字符串上的工作沒錯,但是在NET框架下,這個操作實在是划不來,因為系統先是把對象,並讀取內存中的數據付給該對象,這一來二去的,耗了不少時間。而使用System Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,能夠在已有對象的原地進行字符串的修改,簡單而且直接。當然,一般情況下覺察不到這二者效率的差異,但如果你要對某個字符串進行大量的添加操作,那么StringBuilder類所耗費的時間和String類簡直不是一個數量級的。
練習
1.接收用戶輸入的字符串,將其中的字符以與輸入相反的順序輸出。"abc"→"cba"---------之前學過
2.接收用戶輸入的一句英文,將其中的單詞以反序輸出。"hello c sharp"→"sharp c hello"-----------同上
如果我是你的領導現在讓你們做上面的兩個練習,看看你們能從容的通過簡單的方法寫出上面兩個題的代碼么?
着重看我下面的方法,題目:從Email中提取出用戶名和域名:abc@163.com。----------分割------------
圖十一、IndexOf后面經常用到的方法
讓用戶輸入一句話,找出所有e的位置
圖十二、找出字符串里面所有的e
練習:文本文件中存儲了多個文章標題、作者,標題和作者之間用若干空格(數量不定)隔開,每行一個,標題有的長有的短,輸出到控制台的時候最多標題長度10,如果超過10,則截取長度8的子串並且最后添加“...”,加一個豎線后輸出作者的名字。
圖十三、讀文章內容作判斷
圖十四、讀文章做判斷最終完整演示
Insert 在此示例中的制定索引位置插入一個指定的string實例
圖十五、insert
在學習到這個階段的時候,想必大家看到所學的方法還是相當的多的,我們只要不放棄,有許三多掄錘的精神。后面的道路將會一片光明。這里注意:需要找一些練習,多敲幾遍代碼。
圖十六、判斷字符串是否為空
圖十七、在字符串中添加內容
圖十八、remove
圖十九、trim
在今天的內容更多的是在控制台上面進行操作的,略顯枯燥。有人說學C#的人只會拖控件,看了上面的文章,控件真的只有這么簡單么?這里寫到的很多內容在我們后面學習winform也就是窗體應用程序的時候都會用到。為C#愛好者,在之后寫項目的時候做好充足的准備。也希望本人的努力,能讓初學者得到對C#更好的詮釋。
作者近期文章列表:
C#基礎教程(完全免費,獻給代碼愛好者的最好禮物。注:本 作者分享自己精心整理的C#基礎教程,無任何商業目的。希望與 更多的代碼愛好者交流心得,也請高手多多指點!!!) | |
面向過程 | 三種循環的比較 |
C#中的方法(上) | |
我們常見的數組 | |
面向對象 | 思想的轉變 |
C#中超級好用的類 | |
C#中析構函數和命名空間的妙用 | |
C#中超級好用的字符串 | |
GDI+ | 這些年我收集的GDI+代碼 |
這些年我收集的GDI+代碼2 | |
HTML概述 | 你不能忽視的HTML語言 |
你不能忽視的HTML語言2精編篇 | |
你不能忽視的HTML語言3 |