C#String字符串處理API函數中文詳解Unity-Chinar教程

Chinar blog www.chinar.xin

字符串處理函數總結


本文提供全流程,中文翻譯

助力快速掌握 C# String 字符串各種API函數用法

爲初學者節省寶貴的時間,避免採坑!

Chinar —— 心分享、心創新!

我們的初衷是將一種簡單的生活方式帶給世人

使有限時間 具備無限可能

Chinar 教程效果:

 string str = "a";
            int    res = str.CompareTo("b");
            Console.WriteLine(res);

            str = "b";
            res = str.CompareTo("a");
            Console.WriteLine(res);

            str = "b";
            res = str.CompareTo("a");
            Console.WriteLine(res);
            Console.WriteLine("_________________________________比較________________________________________");

            str               = "www.unity.kim";
            string newReplace = str.Replace('.', '-'); //替換字符串中的某個字符/字符串:Replace(指定字符,替換字符)
            Console.WriteLine(newReplace);
            Console.WriteLine("___________________________________替換______________________________________");

            string[] strings = str.Split('.'); //字符串拆分,用一個字符拆分現有字符串
            foreach (var s in strings)
            {
                Console.WriteLine(s);
            }
            Console.WriteLine("__________________________________拆分_______________________________________");



全文高清圖片,點擊即可放大觀看 (很多人竟然不知道)


1

Intro —— 簡介


日常程序開發中,最常用到的類,就有一個String類

專門的對字符串進行着各式各樣的處理

class Program
    {
        static void Main(string[] args)
        {
            /* CompareTo() 函數在字符串相等的時候,返回值爲:0
               當兩個字符 ,比較的字符 str 中出現一個 與下邊不同的字符時,str的字母排序靠前,返回-1
               否則返回1*/

            string str = "a";
            int    res = str.CompareTo("b");
            Console.WriteLine(res);

            str = "b";
            res = str.CompareTo("a");
            Console.WriteLine(res);

            str = "b";
            res = str.CompareTo("a");
            Console.WriteLine(res);
            Console.WriteLine("_________________________________比較________________________________________");

            str               = "www.unity.kim";
            string newReplace = str.Replace('.', '-'); //替換字符串中的某個字符/字符串:Replace(指定字符,替換字符)
            Console.WriteLine(newReplace);
            Console.WriteLine("___________________________________替換______________________________________");

            string[] strings = str.Split('.'); //字符串拆分,用一個字符拆分現有字符串
            foreach (var s in strings)
            {
                Console.WriteLine(s);
            }
            Console.WriteLine("__________________________________拆分_______________________________________");

            string newSubstring = str.Substring(4, 5); //從str 中的第四個字符開始截取,然後截取長度爲5的字符
            Console.WriteLine(newSubstring);
            newSubstring = str.Substring(4); //如果不給長度,則直接到末端
            Console.WriteLine(newSubstring);
            Console.WriteLine("__________________________________從某個位置截取字符串_______________________________________");

            string strUp = str.ToUpper(); //字符串轉大寫
            Console.WriteLine(strUp);

            var strLow = str.ToLower(); //字符串轉小寫
            Console.WriteLine(strLow);
            Console.WriteLine("__________________________________大小寫_______________________________________");

            str            = " www.unity.kim ";
            string newTrim = str.Trim(); //刪除 字符串收尾空白處
            Console.WriteLine(str);
            Console.WriteLine(newTrim);
            Console.WriteLine("__________________________________去首位空格_______________________________________");

            int num = str.IndexOf("unidty"); //可以用來判斷是否包含一個子字符串,不包含返回-1,包含返回第一個字符在哪個位置的下標
            Console.WriteLine(num);

            Console.ReadLine();
        }
    }

舉個例子


2 Compare ―― 比較

將A和B進行比較

string.Compare(A,B)
建議常用: string.Comparestring.CompareOrdinal

//返回值:
// 1:大於
// 0:等於
//-1:小於
static void Main(string[] args)
{
    string 變量1  = "abc";
    string 變量2  = "ABC";
    int    返回值1 = string.Compare(變量1, 變量2, true);                     //忽略大小寫
    int    返回值2 = string.Compare(變量1, 變量2, StringComparison.Ordinal); //序號(二進制)排序規則 
    int    返回值3 = string.CompareOrdinal(變量1, 變量2);                    //序號(二進制)排序規則 - (常用)
    Console.WriteLine(返回值1); // 0 相同
    Console.WriteLine(返回值2); // 32 返回兩者相對位置
    Console.WriteLine(返回值3); // 32 返回兩者相對位置
    Console.ReadLine();
}

2 Copy ―― 複製

複製字符串對象,新建一個實例,是新對象!二者內存地址不同


string.Copy(字符串內容)
建議常用: string.Comparestring.CompareOrdinal

static void Main(string[] args)
 {
            string 變量1 = "ABCDEF";
            string 變量2 = string.Copy(變量1);                                        //創建一個新實例
            變量1 = "123456";                                                       //改變變量1的值
            Console.WriteLine($"變量1的值:{變量1}------內存地址:" + GetMemoryAddress(變量1)); //變量1的值改變,二者的地址不同
            Console.WriteLine($"變量2的值:{變量2}------內存地址:" + GetMemoryAddress(變量2)); //變量2的值,依舊複製1的值。創建了一個新的內存
            Console.WriteLine("-----------------------------------------------"); //變量2的值,依舊複製1的值。創建了一個新的內存
            string source = "123456";
            char[] chars  = {'我', '愛', '我', '的', '祖', '國'};
            //將變量1,拷貝到 Chars 中
            //CopyTo(原字符串的起始位,目標字)
            source.CopyTo(3, chars, 2, 1); 
            Console.WriteLine(chars);
            Console.ReadLine();
 }


 /// <summary>
 /// 獲取對象內存地址
 /// </summary>
 /// <param name="obj">對象</param>
 /// <returns>內存地址</returns>
 public static string GetMemoryAddress(object obj)
 {
     return GCHandle.Alloc(obj, GCHandleType.Pinned).AddrOfPinnedObject().ToString("X");
 }

輸出結果

變量1的值:123456------內存地址:2FC22BC
變量2的值:ABCDEF------內存地址:2FC23BC
-----------------------------------------------
我愛4567

支持

May Be —— 開發者,總有一天要做的事!


擁有自己的服務器,無需再找攻略

Chinar 提供一站式《零》基礎教程

使有限時間 具備無限可能!

先點擊領取 —— 阿里全產品優惠券 (享受最低優惠)


Chinar 免費服務器、建站教程全攻略!( Chinar Blog )


Chinar

END

本博客爲非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均爲本人所擁有,本人保留所有法定權利。違者必究

對於需要複製、轉載、鏈接和傳播博客文章或內容的,請及時和本博主進行聯繫,留言,Email: [email protected]

對於經本博主明確授權和許可使用文章及內容的,使用時請註明文章或內容出處並註明網址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章