首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 字串處理實用技巧十則:分割、反轉、擷取數字、查找位置、路徑解析、批次取代、加密解密

     編輯:關於C#

技巧一:依標點分行


string[] lines = "abc,defg,hijklmn,opq,rstuv".Split(',');
foreach (string s in lines) Console.WriteLine(s);

技巧二:字串反轉


char[] arr = "ABCDEFG".ToCharArray();
Array.Reverse(arr);
string rev = new string(arr); // "GFEDCBA"

技巧三:擷取字串中的數字


string input = "A23BCDEFG4Hi678";
string digits = new string(input.Where(c => char.IsDigit(c)).ToArray()); // "234678"

技巧四:尋找字元所有位置


string s = "aBcdaEFGaHIaaaK";
char target = 'a';
for (int i = 0; i < s.Length; i++)
    if (s[i] == target) Console.WriteLine(i); // 0, 4, 8, 11, 12, 13

技巧五:解析檔案路徑、檔名、副檔名


string path = @"C:\gdiplus.dll";
string dir = System.IO.Path.GetDirectoryName(path);      // "C:\"
string name = System.IO.Path.GetFileNameWithoutExtension(path); // "gdiplus"
string ext = System.IO.Path.GetExtension(path).TrimStart('.');  // "dll"

技巧六:RichTextBox 批次取代


int start = 0;
while ((start = rtb.Find("abc", start, RichTextBoxFinds.None)) != -1)
{
    rtb.Select(start, "abc".Length);
    rtb.SelectedText = "***";
    start += "***".Length;
}

技巧七:空白分割存入陣列/ArrayList


string[] parts = "abc def ghiklm opq".Split(' ');
ArrayList list = new ArrayList(parts);

技巧八:DES 對稱加密


const string Key = "MyKey123"; // 8 位元組
public string Encrypt(string plain)
{
    using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
    {
        des.Key = des.IV = Encoding.UTF8.GetBytes(Key);
        using (MemoryStream ms = new MemoryStream())
        using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
        {
            byte[] data = Encoding.UTF8.GetBytes(plain);
            cs.Write(data, 0, data.Length);
            cs.FlushFinalBlock();
            return Convert.ToBase64String(ms.ToArray());
        }
    }
}

技巧九:DES 解密


public string Decrypt(string cipher)
{
    using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
    {
        des.Key = des.IV = Encoding.UTF8.GetBytes(Key);
        using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(cipher)))
        using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
        using (StreamReader sr = new StreamReader(cs, Encoding.UTF8))
            return sr.ReadToEnd();
    }
}

技巧十:null、空字串、String.Empty、DBNull.Value 差異

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
表示型別意義判斷方式
null參考型別無物件參考str == null
""string長度 0 字串str == "" / str.Length == 0
String.Emptystring同上,唯讀靜態欄位str == String.Empty
DBNull.ValueDBNull資料庫 NULL 值Convert.IsDBNull(obj)