欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
C#字符串的常用操作

一、string關(guān)鍵字與StringBuilder類(lèi)

    C# 字符串是使用 string 關(guān)鍵字聲明的一個(gè)字符數組。字符串是使用引號聲明的,如下例所示:

string s = "Hello, World!";

    字符串對象是“不可變的”,即它們一旦創(chuàng )建就無(wú)法更改。對字符串進(jìn)行操作的方法實(shí)際上返回的是新的字符串對象。因此,出于性能方面的原因,大量的連接或其他涉及字符串的操作應當用 StringBuilder 類(lèi)執行,如下所示:

 

System.Text.StringBuilder sb = new System.Text.StringBuilder();

sb.Append("one ");

sb.Append("two ");

sb.Append("three");

string str = sb.ToString();

 

 

二、字符串使用

 

1、轉移字符“\”

    字符串中可以包含轉義符,如“\n”(新行)和“\t”(制表符)。

    如果希望包含反斜杠,則它前面必須還有另一個(gè)反斜杠,如“\\”。

 

 

2、“@”符號

    @ 符號會(huì )告知字符串構造函數忽略轉義符和分行符。

    因此,以下兩個(gè)字符串是完全相同的:

        string p1 = "\\\\My Documents\\My Files\\";

        string p2 = @"http://www.cnblogs.com/xianspace/admin/file://my/ Documents\My Files\";

 3、ToString()

    如同所有從 Object 派生的對象一樣,字符串也提供了 ToString 方法,用于將值轉換為字符串。此方法可用于將數值轉換為字符串,如下所示:

int year = 1999;

string msg = "Eve was born in " + year.ToString();

System.Console.WriteLine(msg);  // outputs "Eve was born in 1999"

 

    另外,可以通過(guò)參數格式化ToString()的顯示輸出。如,對于時(shí)間類(lèi)型格式,可以通過(guò)ToString()方法自定義時(shí)間顯示格式。如:

System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");

//outputs "2009-03-11 18:05:16.345"

//"MM":指定月份為2位字符串,不足2位則前方補"0";"M":為月份數值轉換的字符串;

//"HH":表示24小時(shí)制的小時(shí);"hh"表示12小時(shí)制的小時(shí);

 

 

4、SubString()

    格式:Substring(int startindex, int len)

    用于獲取源字符串指定起始位置startindex,指定長(cháng)度len的字符串。

    參數Startindex索引從0開(kāi)始,且最大值必須小于源字符串的長(cháng)度,否則會(huì )編譯異常;

參數len的值必須不大于源字符串索引指定位置開(kāi)始,之后的字符串字符總長(cháng)度,否則會(huì )出現異常;

示例:

    string s4 = "Visual C# Express";

    System.Console.WriteLine(s4.Substring(7, 2));         // outputs "C#" ,C為第八個(gè)字符

    System.Console.WriteLine(s4.Replace("C#", "Basic"));  // outputs "Visual Basic Express"

 

 

5、Replace()

    格式:Replace(string oldValue, string newValue)

    用于字符串中特定字符串組合的替換,即將源字符串中的所有oldValue 字符串替換為 newValue 字符串。

示例:

    string s5 = "Visual C# Express";

    System.Console.WriteLine(s5.Replace("C#","VB"));         // outputs "Visual VB Express"

 

 

6、Split()

    將字符串拆分為子字符串(如將句子拆分為各個(gè)單詞)是一個(gè)常見(jiàn)的編程任務(wù)。Split() 方法使用分隔符(如空格字符)char 數組,并返回一個(gè)子字符串數組。您可以使用 foreach 訪(fǎng)問(wèn)此數組。

示例:

    char[] delimit = new char[] { ' ' };

    string s14 = "The cat sat on the mat.";

    foreach (string substr in s14.Split(delimit))  //使用空格拆分

    {

           System.Console.WriteLine(substr);

    }

    此代碼將在單獨的行上輸出每個(gè)單詞,如下所示:

    The

    cat

    sat

    on

    the

    mat.

 

    下面的代碼示例演示如何使用 System.String.Split 方法分析字符串。此方法返回一個(gè)字符串數組,其中每個(gè)元素是一個(gè)單詞。作為輸入,Split 采用一個(gè)字符數組指示哪些字符被用作分隔符。本示例中使用了空格、逗號、句點(diǎn)、冒號和制表符。一個(gè)含有這些分隔符的數組被傳遞給 Split,并使用結果字符串數組分別顯示句子中的每個(gè)單詞。

示例:

 

 1 class TestStringSplit
 2 

 3 {
 4 

 5     static void Main()
 6 

 7     {
 8 

 9         char[] delimiterChars = { ' '',''.'':''\t' };
10 

11  
12 

13         string text = "one\ttwo three:four,five six seven";
14 

15         System.Console.WriteLine("Original text: '{0}'", text);
16 

17  
18 

19         string[] words = text.Split(delimiterChars);
20 

21         System.Console.WriteLine("{0} words in text:", words.Length);
22 

23  
24 

25         foreach (string s in words)
26 

27         {
28 

29             System.Console.WriteLine(s);
30 

31         }
32 

33     }
34 

35 }
36 

37  
38
 

 

 

輸出:

Original text: 'one     two three:four,five six seven'

7 words in text:

one

two

three

four

five

six

seven

 

    另外,還可通過(guò)正則表達式Regex.Split()的方法,通過(guò)字符串分隔字符串。

示例:

    using System.Text.RegularExpressions; //需要引用正則表達式的命名空間   

    string str="aaajsbbbjsccc";

    string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);   //正則表達式

    // RegexOptions.IgnoreCase 表示忽略字母大小寫(xiě)

    foreach (string i in sArray) Response.Write(i.ToString() + "<br>");

    輸出:

        aaa

        bbb

        ccc

 

 

7、Trim()

    Trim() 從當前 String 對象移除所有前導空白字符和尾部空白字符。

示例:

    string s7 = "  Visual C# Express     ";

    System.Console.WriteLine(s7);         // outputs  Visual C# Express     "

    System.Console.WriteLine(s7.Trim());         // outputs "Visual C# Express"

 

 

8、ToCharArray()

    格式:ToCharArray(int startindex,int len)

    用于將字符復制到字符數組。用于修改字符串等

示例:

string s8 = "Hello, World";

char[] arr = s8.ToCharArray(0, s8.Length);

foreach (char c in arr)

{

    System.Console.Write(c);  // outputs "Hello, World"

}

 

示例:修改字符串內容

    字符串是不可變的,因此不能修改字符串的內容。但是,可以將字符串的內容提取到非不可變的窗體中,并對其進(jìn)行修改,以形成新的字符串實(shí)例。

    下面的示例使用 ToCharArray 方法來(lái)將字符串的內容提取到 char 類(lèi)型的數組中。然后修改此數組中的某些元素。之后,使用 char 數組創(chuàng )建新的字符串實(shí)例。

 

class ModifyStrings

{

    static void Main()

    {

        string str = "The quick brown fox jumped over the fence";

        System.Console.WriteLine(str);

 

        char[] chars = str.ToCharArray();

        int animalIndex = str.IndexOf("fox");

        if (animalIndex != -1)

        {

            chars[animalIndex++] = 'c';

            chars[animalIndex++] = 'a';

            chars[animalIndex] = 't';

        }

 

        string str2 = new string(chars);

        System.Console.WriteLine(str2);

    }

}

 

輸出:

The quick brown fox jumped over the fence

The quick brown cat jumped over the fence

 

 

9、利用索引訪(fǎng)問(wèn)字符串中的各個(gè)字符

    格式:str[int index]

示例:逆序排列字符串

string s9 = "Printing backwards";

for (int i = 0; i < s9.Length; i++)

{

    System.Console.Write(s9[s9.Length - i - 1]);  // outputs "sdrawkcab gnitnirP"

}

 

 

10、更改大小寫(xiě),ToUpper() 和 ToLower()

    若要將字符串中的字母更改為大寫(xiě)或小寫(xiě),可以使用 ToUpper() 或 ToLower()。如下所示:

string s10 = "Battle of Hastings, 1066";

System.Console.WriteLine(s10.ToUpper());  // outputs "BATTLE OF HASTINGS 1066"

System.Console.WriteLine(s10.ToLower());  // outputs "battle of hastings 1066"

 

 

11、比較

    比較兩個(gè)字符串的最簡(jiǎn)單方法是使用 == 和 != 運算符,執行區分大小寫(xiě)的比較。

string color1 = "red";

string color2 = "green";

string color3 = "red";

if (color1 == color3)

{

    System.Console.WriteLine("Equal");

}

if (color1 != color2)

{

    System.Console.WriteLine("Not equal");

}

 

 

12、CompareTo()

    字符串對象也有一個(gè) CompareTo() 方法,它根據某個(gè)字符串是否小于 (<) 或大于 (>) 另一個(gè),返回一個(gè)整數值(小于0或大于等于0)。比較字符串時(shí)使用 Unicode 值,小寫(xiě)的值小于大寫(xiě)的值。示例:

string s121 = "ABC";

string s122 = "abc";

if (s121.CompareTo(s122) > 0)

{

    System.Console.WriteLine("Greater-than");

}

else

{

    System.Console.WriteLine("Less-than");

}

 

 

13、字符串索引 IndexOf()。

    若要在一個(gè)字符串中搜索另一個(gè)字符串,可以使用 IndexOf()。如果未找到搜索字符串,IndexOf() 返回 -1;否則,返回它出現的第一個(gè)位置的索引(從零開(kāi)始)。

示例:

string s13 = "Battle of Hastings, 1066";

System.Console.WriteLine(s13.IndexOf("Hastings"));  // outputs 10 ,注意從0開(kāi)始數起

System.Console.WriteLine(s13.IndexOf("1967"));      // outputs -1

 

    string 類(lèi)型(它是 System.String 類(lèi)的別名)為搜索字符串的內容提供了許多有用的方法。下面的示例使用 IndexOf、LastIndexOf、StartsWith 和 EndsWith 方法。

示例:

 

 

class StringSearch

{

    
static void
 Main()

    {

        
string str = "A silly sentence used for silly purposes."
;

        System.Console.WriteLine(
"'{0}'",str);         //'A silly sentence used for silly purposes.'


        
bool test1 = str.StartsWith("a silly");   

        System.Console.WriteLine(
"starts with 'a silly'? {0}", test1);   //starts with 'a silly'? False


 

        
bool test2 = str.StartsWith("a silly", System.StringComparison.OrdinalIgnoreCase);

        System.Console.WriteLine(
"starts with 'a silly'? {0} (ignoring case)", test2);    //starts with 'a silly'? True (ignore case)


 

        
bool test3 = str.EndsWith(".");

        System.Console.WriteLine(
"ends with '.'? {0}", test3);        //ends with '.'? True


 

        
int first = str.IndexOf("silly");

        
int last = str.LastIndexOf("silly"
);

        
string str2 = str.Substring(first, last -
 first);

        System.Console.WriteLine(
"between two 'silly' words: '{0}'", str2);    //between two 'silly' words: 'silly sentence used for '


    }

}

 

 

輸出:

'A silly sentence used for silly purposes.'

starts with 'a silly'? False

starts with 'a silly'? True (ignore case)

ends with '.'? True

between two 'silly' words: 'silly sentence used for '

 

 

三、使用 StringBuilder

 

    StringBuilder 類(lèi)創(chuàng )建了一個(gè)字符串緩沖區,用于在程序執行大量字符串操作時(shí)提供更好的性能。StringBuilder 字符串還允許您重新分配個(gè)別字符,這些字符是內置字符串數據類(lèi)型所不支持的。例如,此代碼在不創(chuàng )建新字符串的情況下更改了一個(gè)字符串的內容:

示例:

    System.Text.StringBuilder sb = new System.Text.StringBuilder("Rat: the ideal pet");

    sb[0] = 'C';

    System.Console.WriteLine(sb.ToString());  // displays Cat: the ideal pet

    System.Console.ReadLine();

 

    在以下示例中,StringBuilder 對象用于從一組數值類(lèi)型中創(chuàng )建字符串。

示例:

class TestStringBuilder

{

    static void Main()

    {

        System.Text.StringBuilder sb = new System.Text.StringBuilder();

 

        // Create a string composed of numbers 0 - 9

        for (int i = 0; i < 10; i++)

        {

            sb.Append(i.ToString());

        }

        System.Console.WriteLine(sb);  // displays 0123456789

 

        // Copy one character of the string (not possible with a System.String)

        sb[0] = sb[9];

 

        System.Console.WriteLine(sb);  // displays 9123456789

    }

}

 

 

四、正則表達式

 

    可以使用 System.Text.RegularExpressions.Regex 類(lèi)搜索字符串。這些搜索可以涵蓋從非常簡(jiǎn)單到全面使用正則表達式的復雜范圍。以下是使用 Regex 類(lèi)搜索字符串的兩個(gè)示例。有關(guān)更多信息,請參見(jiàn) .NET Framework 正則表達式。

 

    以下代碼是一個(gè)控制臺應用程序,用于對數組中的字符串執行簡(jiǎn)單的不區分大小寫(xiě)的搜索。給定要搜索的字符串和包含搜索模式的字符串后,靜態(tài)方法 System.Text.RegularExpressions.Regex.IsMatch(System.String,System.String,System.Text.RegularExpressions.RegexOptions) 執行搜索。

    在本例中,使用第三個(gè)參數指示忽略大小寫(xiě)。有關(guān)更多信息,請參見(jiàn) System.Text.RegularExpressions.RegexOptions。

 

示例:

class TestRegularExpressions

{

    static void Main()

    {

        string[] sentences =

        {

            "cow over the moon",

            "Betsy the Cow",

            "cowering in the corner",

            "no match here"

        };

 

        string sPattern = "cow";

 

        foreach (string s in sentences)

        {

            System.Console.Write("{0,24}", s);

 

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))

            {

                System.Console.WriteLine("  (match for '{0}' found)", sPattern);

            }

            else

            {

                System.Console.WriteLine();

            }

        }

    }

}

 

輸出:

       cow over the moon  (match for 'cow' found)

           Betsy the Cow  (match for 'cow' found)

  cowering in the corner  (match for 'cow' found)

           no match here

 

    以下代碼是一個(gè)控制臺應用程序,此程序使用正則表達式驗證數組中每個(gè)字符串的格式。驗證要求每個(gè)字符串具有電話(huà)號碼的形式,即用短劃線(xiàn)將數字分成三組,前兩組各包含三個(gè)數字,第三組包含四個(gè)數字。這是通過(guò)正則表達式 ^\\d{3}-\\d{3}-\\d{4}$ 完成的。有關(guān)更多信息,請參見(jiàn)正則表達式語(yǔ)言元素。

 

示例:

class TestRegularExpressionValidation

{

    static void Main()

    {

        string[] numbers =

        {

            "123-456-7890",

            "444-234-22450",

            "690-203-6578",

            "146-893-232",

            "146-839-2322",

            "4007-295-1111",

            "407-295-1111",

            "407-2-5555",

        };

 

        string sPattern = "^\\d{3}-\\d{3}-\\d{4}$"; 

 

        foreach (string s in numbers)

        {

            System.Console.Write("{0,14}", s);

 

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern))

            {

                System.Console.WriteLine(" - valid");

            }

            else

            {

                System.Console.WriteLine(" - invalid");

            }

        }

    }

}

 

輸出:

    123-456-7890 - valid

    444-234-22450 - invalid

    690-203-6578 - valid

    146-893-232 - invalid

    146-839-2322 - valid

    4007-295-1111 - invalid

    407-295-1111 - valid

    407-2-5555 - invalid

 

 

五、聯(lián)接多個(gè)字符串

 

    有兩種聯(lián)接多個(gè)字符串的方法:使用 String 類(lèi)重載的 + 運算符,以及使用 StringBuilder 類(lèi)。+ 運算符使用方便,有助于生成直觀(guān)的代碼,但必須連續使用;每使用一次該運算符就創(chuàng )建一個(gè)新的字符串,因此將多個(gè)運算符串聯(lián)在一起效率不高。

示例:

string two = "two";

string str = "one " + two + " three";

System.Console.WriteLine(str);

 

    盡管在代碼中只出現了四個(gè)字符串,三個(gè)字符串聯(lián)接在一起,最后一個(gè)字符串包含全部三個(gè)字符串,但總共要創(chuàng )建五個(gè)字符串,因為首先要將前兩個(gè)字符串聯(lián)接,創(chuàng )建一個(gè)包含前兩個(gè)字符串的字符串。第三個(gè)字符串是單獨追加的,形成存儲在 str 中的最終字符串。

    也可以使用 StringBuilder 類(lèi)將每個(gè)字符串添加到一個(gè)對象中,然后由該對象通過(guò)一個(gè)步驟創(chuàng )建最終的字符串。下面的示例對此策略進(jìn)行了演示。

示例:

    下面的代碼使用 StringBuilder 類(lèi)的 Append 方法來(lái)聯(lián)接三個(gè)字符串,從而避免了串聯(lián)多個(gè) + 運算符的弊端。

示例:

class StringBuilderTest

{

    static void Main()

    {

        string two = "two";

 

        System.Text.StringBuilder sb = new System.Text.StringBuilder();

        sb.Append("one ");

        sb.Append(two);

        sb.Append(" three");

        System.Console.WriteLine(sb.ToString());

 

        string str = sb.ToString();

        System.Console.WriteLine(str);

    }

}

==============================================================
看如下的例子:
string myStr = "I love U";
字符串轉化為字符數組ToCharArray():
char [] myChars= myStr.ToCharArray();//得到字符串的字符數組
字符串大小寫(xiě)轉化ToLower() ToUpper():
myStr.ToLower();//返回一個(gè)字母轉化成小寫(xiě)新串
myStr.ToUpper();//返回一個(gè)字母轉化成大寫(xiě)新串
刪除字符串中指定字符Trim(<char[]>):
char[] trimChars ={'I','U'};
myStr.Trim(trimChars);//返回一個(gè)"love" 就是說(shuō)刪除了字符串中指定的字符
向字符串中從左或者從右壓入字符PadLeft(<int>,<char>):
myStr.PadLeft(20);//返回新字符串=原字符串從左邊添加空格直到字符串長(cháng)度達到20  還有PadRight()
myStr.PadLeft(20,'~');返回新字符串=原字符串從左邊添加指定的字符'~' 直到字符串長(cháng)度達到20  還有PadRight()
將字符串根據制定的分離字符分離成字符串數組Split(<char[]>,<int>):
char[] separator={' '};
string[] newStr=myStr.Split(separator);//newStr的內容是newStr[0]="I",newStr[1]="love",newStr[2]="U" 沒(méi)有空格,指定的拆分字符數組作為分隔符在拆分的時(shí)候不計入新的字符內
另外Split(<char[]>,<int>)也可以指定拆分為幾個(gè)字符串

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
.NET(C#):一個(gè)更方便使用的多功能Random類(lèi)型
5-8undefined迭代語(yǔ)句之foreach語(yǔ)句
C# string 到底是引用類(lèi)型還是值類(lèi)型
如何:使用字符串方法搜索字符串 (C#)
C#統計字符串中某字符串出現次數示例
c#之——用Convert類(lèi)實(shí)現數據類(lèi)型轉換
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久