C#字符串处理

C#字符串处理 字符串处理 C#

字符串处理

大小写转换

​ ToUpper和ToLower方法

string str="ASDFGHhjkl";
str.ToUpper()//全部转大写
str.ToLower();//全部转小写

字母转ASCII码

//字母转ASCII
string str="A";


Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Encoding encoding = Encoding.GetEncoding("unicode");
byte [] by=encoding.GetBytes(str);
string ASCII=by[0].ToString();
//ASCII转字母
int x;
string lettr=((char)x).ToString();

Encoding n.[计]编码 v. [计]编码(encode 的 ing 形式)

运行.NET Core或.NET 5+的应用程序,这些版本的.NET不包括所有的编码。你需要注册System.Text.Encoding.CodePages包,然后使用Encoding.GetEncoding方法。

//注册System.Text.Encoding.CodePages包
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

汉字转区位码

汉字转区位码

public string GetCode(string Chinese)
{
    ////注册System.Text.Encoding.CodePages包
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    Encoding gb2312 = Encoding.GetEncoding("GB2312");
    byte[] bytes = gb2312.GetBytes(Chinese);
    // 提取区位码
    int front = bytes[0] - 160;
    int back = bytes[1] - 160;

    return front.ToString() + back.ToString();
}

区位码转汉字

public string GetChinese(string code)
{
    ////注册System.Text.Encoding.CodePages包
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    Encoding gb2312 = Encoding.GetEncoding("GB2312");
    int front = Convert.ToInt32(code.Substring(0, 2))+160;
    int back = Convert.ToInt32(code.Substring(2, 2))+160;
    byte[] bytes = new byte[] { (byte)front, (byte)back };

    return gb2312.GetString(bytes);
}

这里用到了一个Substring()函数,用法如下

Substring()函数

string str = "Hello, World!";
string sub1 = str.Substring(7);      // 返回 "World!"
string sub2 = str.Substring(7, 5);   // 返回 "World"
string sub2 = str.Substring(7, 4);	//返回"Worl"

string Substring(int startIndex): 这种形式返回一个新的字符串,该字符串从当前字符串的指定索引开始一直到尾部。索引是基于0的,所以如果 startIndex 是0,那么它将返回原始字符串。

string Substring(int startIndex, int length): 这种形式返回一个新的字符串,该字符串从当前字符串的指定索引开始,并且长度为指定的长度。如果 startIndex 是0,那么它将返回一个长度为 length 的字符串,该字符串的内容与原始字符串的前 length 个字符相同。

评论