C#中如何快速處理字符串


字符串的分割

  我們經常會遇到字符串的分割的問題,在后面制作播放器的時候,可以用現在學習的方法來分割歌詞。

  下面我們來具體看下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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM