C#字符串基礎


C#字符串基礎

  1. 1.    字符串的兩種創建形式

(1)String A=”cat”;     

(2)String B=new string{‘a’,4}  .調用類方法,創建一個“aaaa”的字符串

(3)可用A【2】引用‘t’字符

(4)可用 A.Length 直接得出字符串的長度

       2.字符串的比較

              (1)string.compare(string1,string2);左大於右,返回1.左右相等返回2右大於左返回-1

              (2)如果僅比較兩字符串是否相等:string 1.Equals(string 2);相等返回True

              (3)如果僅比較兩字符串是否相等:string1==string 2;相等返回True(正常引用類型的==判斷是對於引用地址是否相同的判斷,但是字符串雖然是引用類型但這里將它特殊的以值類型==方式的進行判別)

3.字符串的查找

       (1)Contains方法:if(s1.Contains(“abc”/s2);s1中是否包含s2,包含True

        (2)IndexOf:  s1.IndexOf(“avd”/’a’/s2);從0開始找字符串中子字符串的出現的首先位置。s1.IndexOf(“avd”/’a’/s2,int number);從number位置開始找字符串中子字符串出現首位置。

LastIndexOf 同IndexOf 只不過它是從后往前找。

(3)IndexOfAny:作用是在一個字符串中,尋找其他幾個字符中的任意一個,如果出現任意一個則返回第一個的首位置。如果沒有則返回-1

String A=”ABCDEFG”;

Char []c={‘e’,’f’};

Int x=A.IndexOfAny(c);

//單詞補充: index 索引,指數 indexOf 索引

  1. 1.    求子字符串

Sting B=A.Substring(2);從2位置開始到最后

String B=A.Substring(2,5);從2號位置到5號位置

//如若傳入值小於0,系統會拋出ArgumentOutOfRange異常表明參數范圍出界

  1. 2.    字符串中字母大小寫的轉換

String A=B.Upper();   轉換為大寫

String B=B.Lower();    轉換為小寫

  1. 3.    字符串中的插入,刪除和替換

String A=”abcdefg”;其中StartIndex 的范圍是0-Length-1

(1)String s1=A.Insert(2,”abc”/A); 在2后插入新的字符串

(2) string s2=A.Remove(2); 刪除2位置后的所有字符串

(3)string s3=A.Remove(2,3);刪除2位置后的三位字符

(4)  string s4=A.Replace(‘a’,’b’);將所有的a字符全部替換為b

(5)  string s5=A.Replace(‘ab’,’’);(‘ ’空字符,不表示,不是空格)

7.字符串的合並與拆分

(1)兩字符串合並:string A=B+C;

(2)字符串數組中,字符串元素的合並:string.Join(參數一:用於連接各字符串元素的連接符。Char/string類型 可以是空字符;參數二:所要連接的字符串數組) ;

(3)字符串拆分成字符串數組:string [] B=字符串名.Split(分隔符,char/string型,可以有一個或多個。多個用逗號隔開,不能是空字符);

8.移除首位指定的字符

(1)移除字符串首部:

字符串名.TrimStart();//移除空字符

字符串名.TrimStart(’’);//移除一個字符

字符串名.TrimStart(’,’’’);//移除多個字符

(2)移除字符串尾部TrimEnd()

(3)同時移除字符串首尾字符Trim()

//單詞補充: trim n.點綴物;修剪,整理 v.使整齊;整修;欺騙,怒斥; adj.整潔的,整齊的

9.string 與 stringbuilder 的區別

(1)String類實際上表示的是一系列不可變的字符(靜態)如 String i+=”abc”; 實際上是返回了一個新的String型實例,不是在原本的String變量的內存上做數據修改。若程序中用到字符串連接的次數少,則此方法方便。但如果程序中存在大量這種操作,則會降低效率

(2)StringBuilder 是System.Text 命名空間下的,可以彌補上述不足。編譯器會自動為其分配一定內存,也可以在程序中直接修改(動態)

e.g.

StringBuilder sb1 = new StringBuilder();//空字符串

StringBuilder sb2 = new StringBuilder();

const string s1 = "乾坤轉六合"; //定義字符串常量

string s2 = "八荒測陰陽哈哈";   //定義字符串

try{

   Console.WriteLine("運行了");

//try中語句出錯,不會直接跳到catch中,而是運行到錯誤的語句時再跳出

     sb1.Append(s1);          //Append 可接收字符串常量

     sb1.Append(",");        //Append 可直接守字符串常量,及單字符(隱式轉換)

       sb2.Append(s2);         //Append 可接收字符串

       Console.WriteLine("sb2是:"+sb2); 

       sb1.Append(sb2, 5, 6);  //此處發生錯誤,跳轉到catch中

       Console.WriteLine(sb1);}

 catch{

       sb1.Append(sb2,0, 5);

       //在此說明Append的重載:單詞補充:Append v.附加增補

      //sb.Append(參數一:要連入的字符串s,參數二:s的首位置,參數三:s字符個數)

      Console.WriteLine(sb1);Console.WriteLine("!");

      sb1.AppendLine();

      Console.WriteLine(sb1); Console.WriteLine("!");

      //AppendLine 與 Append  的區別僅僅在於多了一個換行符

      //用Console.WriteLine 輸出時會把sb隱式轉換為s

      string s3 = sb1.ToString();

       Console.WriteLine(s3);}


免責聲明!

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



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