一篇文章梳理一下C#中字符和字符串常用类(Char&&String、StringBuilder)

一、创作灵感

        1、在实际写程序过程中,总是频繁和字符串打交道,经常String类的很多方法总是要用的时候才临时东拼西凑,属实效率低下,这边文章主要把Char类、String类、StringBuilder类中常用的方法汇总,并通过程序的方式演示实际应用。

二、Char类的介绍和使用

1、Char类的简述

        Char主要用来存储单个字符,占2个字节的内存空间。定义字符型变量时以单引号表示,如'c'表示一个字符。Char类的代码定义如下:

      Char chl = 'c'; //定义字符c
      Char chn = '5'; //定义字符5,此处由于有单引号,5是字符格式,而不是数值

2、Char类的常用方法及说明

        下表列出了Char提供的22种实用方法,以Is和To开头的比较重要。Is开头大多是判断Unicode字符是否为某个类别的,To开头的主要是转换为其他Unicode字符。

方法说明
IsControl 指示指定Unicode字符是否属于控制字符类别
IsDigit 指示某个Unicode字符是否属于十进制数字类别
IsHighSurrogate 指示指定的Char对象是否为高代理项
IsLetter 指示某个Unicode字符是否属于字母类别
IsLetterOrDigit 指示某个Unicode字符是属于字母类别还是属于十进制数字类别
IsLower 指示某个Unicode字符是否属于小写字母类别
IsLowSurrogate 指示指定的Char对象是否为低代理项
IsNumber 指示某个Unicode字符是否属于数字类别
IsPunctuation 指示某个Unicode字符是否属于标点符号类别
IsSeparator 指示某个Unicode字符是否属于分隔符类别
IsSurrogate 指示某个Unicode字符是否属于代理项字符类别
IsSurrogatePair 指示两个指定的Char对象是否形成代理项对
IsSymbol指示某个Unicode字符是否属于符号字符类别
IsUpper 指示某个Unicode字符是否属于大写字母类别
IsWhiteSpace 指示某个Unicode字符是否属于空白类别
Parse 将指定字符串的值转换为它的等效Unicode字符
ToLower 将Unicode字符的值转换为它的小写等效项
ToLowerInvariant 使用固定区域性的大小写规则,将Unicode字符的值转换为其小写等效项
ToString 将此实例的值转换为其等效的字符串表示
ToUpper 将Unicode字符的值转换为它的大写等效项
ToUpperlInvariant 使用固定区域性的大小写规则,将Unicode字符的值转换为其大写等效项
TryParse 将指定字符串的值转换为它的等效Unicode字符

3、Winform程序演示Char类的常用方法

        UI界面如下:

        代码部分如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Char_String_StringBuider
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void buttonStartJudging_Click(object sender, EventArgs e)
        {
            char a = 'a'; //声明字符a
            char b = '7'; //声明字符b
            char c = 'L';  //声明字符C 
            char d = '.'; //声明字符d 
            char E = '|'; //声明字符e 
            char f = ' '; //声明字符f

            // 使用IsLetter()方法判断 a是否为字母
            textBoxa.Text = String.Format("IsLetter()方法判断a是否为字母:{0}", Char.IsLetter(a));
            //使用 IsDigit()方法判断b是否为数字
            textBoxb.Text = String.Format("IsDigit()方法判断b是否为数字:{0}", Char.IsDigit(b));
            //使用IsLetterOrDigit()方法判断c是否为字母或数字
            textBoxc.Text = String.Format("IsLetterOrDigit()方法判断C是否为字母或数字:{0}", Char.IsLetterOrDigit(c));
            //使用IsPunctuation()方法判断d是否为标点符号
            textBoxd.Text = String.Format("IsPunctuation()方法判断d是否为标点符号:{0}", Char.IsPunctuation(d));
            // 使用IsSeparator()方法判断E是否为分隔符
            textBoxE.Text = String.Format("IsSeparator()方法判断E是否为分隔符:{0}", Char.IsSeparator(E));
            // 使用IsWhiteSpace()方法判断f是否为空白
            textBoxf.Text = String.Format("IsWhiteSpace()方法判断f是否为空白:{0}", Char.IsWhiteSpace(f));
        }
    }
}

        运行后点击“开始判断”结果如下:

三、String类的介绍和使用

1、String类的简述

        前面说过单个字符是以单引号内输入一个字符表示,字符串则是双引号内输入任意数量的字符表示,字符串变量的声明如下:

   string str1 = string.Empty; //声明一个空字符串
   string str2 = "abcd"; //声明一个字符串"abcd"

2、String类的常用方法及说明

         String类中提供了好多种方法,对字符串进行同样的操作也可能有不同的方式,下面先定义三个字符串变量strA、strB、strC,下表中相关运算均以这三个字符串变量举例。

方法功能描述方法说明
连接多个字符串使用“+”运算符使用“+”运算符连接字符串,如strC=strA+strB
比较字符串直接用比较运算符“==”直接用“==”运算符比较两个字符串的值是否相等,返回bool值;
如bool b = strA==strB,若strA与strB相等则b返回true,否则b返回false
Equals()主要用于比较两个字符串是否相同,如果相同返回返回true,否则返回false;它执行顺序(区分大小写和区域性)比较;
bool b = strA.Equals(strB);
bool b = string.Equals(strA,strB);
Compare()用来比较两个字符串是否相等,它的返回值是int型,最常用的两个重载方法如下;
Compare(strA,strB);
Compare(strA,strB,bool ignorCase); //如果ignorCase = true,比较字符串时忽略大小写的差别
CompareTo()比较两个字符串是否相等;
strA.CompareTo(strB); //如果strA的值与strB的值相等,则返回0;如果strA>strB的值,则返回1;否则返回-1
格式化字符串Format()用于将字符串数据格式化成指定的格式;
strC = string.Format("{0}{1}",strA,,strB);//格式化后输出strC的值与strA和strB连接后等效
截取字符串Substring()截取字符串中指定位置和指定长度的子字符串;
strB = StrA.Substring(3,5); //截取字符串strA中起始位置的索引为3,长度为5的子字符串并赋值给strB
分割字符串Split()用于分割字符串,此方法的返回值是包含所有分割子字符串的数组对象,可以通过数
组得到所有分割的子字符串;
string[] splitstrings = strA.Split(','); //按逗号分割strA并返回一个字符串数组给splitstrings
插入字符串Insert()向字符串的任意位置插入新元素;
strC = strA.Insert(2,strB); //在字符串strA的索引为2的位置开始插入strB并赋值给strC
填充字符串PadLeft()/PadRight()填充字符串,PadLeft()方法在字符串的左侧进行字符填充,PadRight()方法在字符串的左侧
进行字符填充;
public string PadLeft(int totalWidth,char paddingChar)
public string PadRight(int totalWidth,char paddingChar)
totalWidth:指定填充后的字符串长度
paddingChar:指定所要填充的字符,如果省略,则填充空格符号
删除字符串Remove()用于从一个字符串的指定位置开始,删除指定数量的字符;
strB = strA.Remove(5); //删除strA中从索引位置5到最后位置的所有字符
strB = strA.Remove(5,3); //从strA索引5处开始删除3个字符
复制字符串Copy()创建一个与指定的字符串具有相同值的字符串的新实例;
strB = string.Copy(strA); //复制strA并赋值给strB
CopyTo()功能除了与Copy()相同外,还能实现将字符串的某一部分复制到另一个数组中;
public void CopyTo(int sourceIndex,char[] destination,int destinationIndex,int count)
sourceIndex:需要复制的字符的起始位置
destination:目标字符数组
destinationIndex:指定目标数组中的开始存放位置
count:指定要复制的字符个数
替换字符串Replace()用于将字符串中的某个字符或字符串替换成其他的字符或字符串;
public string Replace(char OChar,char NChar) //OChar待替换的字符,NChar替换后的新字符
public string Replace(string OValue, string NValue) //OValue待替换的字符串,NValue替换后的新字符串

3、Winform程序演示String类的常用方法

        Winform UI界面如下:

        字符串中常用方法演示代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace String
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void buttonConnectString_Click(object sender, EventArgs e) //连接字符串
        {
            string strA = "abcdefgh";
            string strB = "qweihvgh";
            string strC;
            strC = strA + strB;
            textBoxResultOutput.Text = string.Format("strA为:{0};{1}strB为:{2};{3}strC=strA+strB结果为:{4}", strA, Environment.NewLine, strB, Environment.NewLine, strC);
        }

        private void buttonSplitString_Click(object sender, EventArgs e) //分割字符串
        { 
            string strA = "a,b,c,d,e,f,g,h";
            string[] strB = strA.Split(',');
            string strC = string.Empty;
            strC = string.Format("strA为:{0};{1}", strA, Environment.NewLine);
            for (int i = 0; i < strB.Length; i++)
            {
                strC += string.Format("strA按逗号分割后赋值给strB[{0}]为:{1}{2}", Convert.ToString(i), strB[i], Environment.NewLine);
            }
            textBoxResultOutput.Text = strC;
        }

        private void buttonSubString_Click(object sender, EventArgs e) //截取字符串
        {
            string strA = "rgeanvjlithgunp;bale";
            string strB = strA.Substring(4,9);
            textBoxResultOutput.Text = string.Format("strA为:{0};{1}strA截取索引值从4开始往后长度为9的子字符串赋值给strB为:{2}", strA, Environment.NewLine, strB);
        }

        private void buttonReplaceString_Click(object sender, EventArgs e) //替换字符串
        {
            string strA = "小飞小飞我爱你,就像老鼠爱大米!!!😗";
            string strB = strA.Replace("我爱你", "你爱我");
            textBoxResultOutput.Text = string.Format("strA为:{0};{1}将strA中的我爱你替换为你爱我并赋值给strB为:{2}", strA, Environment.NewLine, strB);
        }
    }
}

        连接字符串运行结果如下:

        分割字符串运行结果如下:

        截取字符串运行结果如下:

        替换字符串运行结果如下:

四、StringBuilder类(可变字符串类)的介绍和使用

1、StringBuilder类的简述

        之前提到的String类的长度是固定的、内容不能被改变和编译。重复的对String中创建的字符串变量进行修改,会创建新的字符串对象,增大系统开销。因此C#提供了一个可变的字符序列StringBuilder类,能提高效率。创建StringBuilder对象,初始引用的字符串为“小飞我爱你!!!”,声明格式如下:

using System.Text;
StringBuilder ZeroOnestringBuilder = new StringBuilder("小飞我爱你!!!"); 

2、StringBuilder类中常用的方法及说明

方法说明
Append 将文本或字符串追加到指定对象的末尾
AppendFormat 自定义变量的格式并将这些值追加到StringBuilder对象的末尾
Insert 将字符串或对象添加到当前StringBuilder对象中的指定位置
Remove 从当前StringBuilder对象中移除指定数量的字符
Replace

用另一个指定的字符来替换StringBuilder对象内的字符

        通过前面对Char类和String类的演示,相信此处已经不需要对StringBuilder类中方法的使用进行举例,感兴趣的学友们可以自己尝试用该类。

五、结语

        通过对C#中字符串相关的类以及其中比较常用方法的学习,编写相对简单程序时这些字符串方法基本够用了,本菜鸟后期会边学习边总结更新CSDN上的C#相关知识。希望大家提出改进和建议,希望每一天都是成长的一天,愿今后都能学有所用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零壹电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值