一、创作灵感
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#相关知识。希望大家提出改进和建议,希望每一天都是成长的一天,愿今后都能学有所用。