C#-String类常用方法及说明

概述

字符串String必须包裹在一对【“”】中;例如:“23424” “你好”

在C#中由双引号【“”】包裹的都是字符串,不能作为其他数据类型来使用,如"1+2"的输出结果永远不会是3

声明:
String str = [null];
字符串必须进行初始化后才能够使用。

使用

1、连接多个字符串

使用‘+’运算符可完成对多个字符串连接的功能。运算符【+】可以连接多个字符串,并产生一个String对象。
String s1 = ”Hello“;
String s2 = " World";
String s =  s1 + s2;

C#中一句相连的字符串不能分开在两行中写,如果需要太长需要分开,可以如下:

Console.WriteLine("I like " +
"C#");

2、比较字符串

对字符串进行比较,可以使用比较运算符【==】实现,也可以通过C#中常见的字符串的比较方法Compare()、CompareTo()和Equals()等方法,这些方法都归属于String类下;

2.1 Compare()方法

比较两个字符串是否相等,有多个重载方法,最常用的两种方法如下:

int Compare(string strA, string strB)
int Compare(string strA, string strB, bool ignorCase)

strA strB 需要比较的字符串,ignorCase是一个布尔类型的参数,如果为true就忽略大小写的差别。
Compare()方法是一个静态方法,所以在使用时,可以直接引用。

string str1 = "华为";
string str2 = "华为mate系列";
//引用
Console.WriteLine(String.Compare(str1,str2)); 	//输出-1

比较字符串不是比较长度大小,而是比较字符串在英文字典中的位置。按照A~Z的顺序,判断两个字符串的大小。

2.2CompareTo()方法

CompareTo()方法与Compare()方法类似,不同的是CompareTo()方法以实例对象本身与指定的字符串做比较,其语法如下:

public int CompareTo(String strB)

例如strA与strB进行比较:

strA.CompareTo(strB)

如果两个字符串相等,返回0;如果strA大于strB,返回1;否则返回-1;

2.3Equals()方法

Equals()方法主要用来比较两个字符串是否相同,如果相同返回true,否则返回false。
常用语法:

public bool Equals(string value);
publi static bool Equals(string a, string b);

value:与实例比较的字符串
a和b:是要进行比较的两个字符串
例:

string strA = “C#";
string strB = "C#宝典";
Console.WriteLine(strA.Equals(strB));	
Console.WriteLine(String.Equals(strA,strB));

该方法执行顺序(区分大小写和区域性)比较。

3、格式化字符串

C#中,String类提供了一个静态的Format()方法,用于将字符串数据格式化成指定的格式,其语法如下:

public static string Format(string format, object obj);

format: 用来指定字符串所要的格式化的形式;
obj:要被格式化的对象

格式化字符串主要有两种情况,分别是数值类型数据的格式化和日期时间类型数据的格式化:

Tip:

format参数由零个或多个文本序列与零个或多个索引占位符混合构成,其中索引占位符称为格式项,它们与此方法的参数列表中的对象相对应。
格式设置过程将每个格式项替换为相应对象值的文本表示形式。
格式项的语法是:
{索引[,对齐方式][:格式字符串]}
它指定了一个强制索引、格式化文本的可选长度和对齐方式,以及格式说明符字符的可选字符串,其中格式说明符字符用于控制如何设置相应对象的值的格式。

3.1 数值类型的格式化

数值类型有多种显示方式,比如货币形式、百分比形式等,C#支持的标准数值格式规范如表5.3所示:

格式说明符名称说明示例
C或c货币结果:货币值
受以下类型支持:所有数值类型
精度说明符:小数位数
¥123或-¥123.456
D或dDecimal结果:整型数字,负号可选
受以下类型支持:仅整型
精度说明符:最小位数
1234或-001234
E或e指数(科学型)结果:指数计数法
受以下类型支持:所有数值类型
精度说明符:小数位数
1.052033E+003或-1.054e+003
F或f定点结果:整数和小数,负号可选
受以下类型支持:所有数值类型
精度说明符:小数位数
1234.57或-156.05600
N或nNumber结果:整数和小数、组分隔符和小数分隔符,负号可选
受以下类型支持:所有数值类型
精度说明符:所需的小数位数
1234.57或-1234.560
P或p百分比结果:乘以100并显示百分比符号的数字
受以下类型支持:所有数值类型
精度说明符:所需的小数位数
100.00%或100%
X或x十六进制结果:十六进制字符串
受以下类型支持:仅整型
精度说明符:结果字符串中的位数
FF或00ff

例:

            //输出金额
            Console.WriteLine(string.Format("123+123的结果是(以货币形式显示):{0:C}",123+123));
            //输出科学计数法
            Console.WriteLine(string.Format("12000.1用科学计数法表示:{0:E}", 12000.1));
            //输出以分隔符显示的数字
            Console.WriteLine(string.Format("1280000以分隔符数字显示的结果是:{0:N0}", 1280000));
            Console.WriteLine(string.Format("1280000以分隔符数字显示的结果是:{0:N}", 1280000));
            //输出小数点后两位
            Console.WriteLine(string.Format("PI取小数点后两位:{0:F2}",Math.PI));
            //输出十六进制
            Console.WriteLine(string.Format("33的十六进制结果是:{0:X4}",33));
            //输出百分号数字
            Console.WriteLine(string.Format("天才是由{0:P0}的灵感,加上{1:P0}的汗水组成。",0.01,0.99));
            Console.ReadLine();

运行结果:
运行结果

3.2 日期时间的格式化

格式规范说明
d简短日期格式(YYYY-MM-dd)
D完整日期格式(YYYY年MM月dd日
t简短时间格式(hh:mm)
T完整时间格式(hh:mm:ss)
f简短的日期/时间格式(YYYY-MM-dd hh:mm)
F完整的日期/时间格式(YYYY年-MM月-dd日 hh:mm:ss)
g简短的可排序的日期/时间格式(YYYY-MM-dd hh:mm)
G完整的可排序的日期/时间格式(YYYY-MM-dd hh:mm:ss)
M或m月/日格式(MM月dd日)
Y或y年/月格式(YYYY年MM月)

例:

            DateTime dt = DateTime.Now; //获取当前系统时间
            string strB = string.Format("{0:D}", dt);   //格式化成完整日期格式
            Console.WriteLine(strB);        //输出日期

            Console.ReadLine();

运行结果:
运行结果

4、截取字符串

String类提供了一个Substring()方法,该方法可以截取字符串中指定位置和指定长度的子字符串,其语法格式如下:

public string Substring(int startIndex, int length)

startIndex:子字符串起始位置的索引
length:子字符串的字符数
例:

            string strA = "今天你学习了吗?";
            string strB = null;
            strB = strA.Substring(2, 6);
            Console.WriteLine(strB);
            Console.ReadLine();

运行结果:
运行结果

5、分割字符串

String类提供了一个Split()方法,用于分割字符串,此方法的返回值是包含所有分割子字符串的数组对象,可以通过数组取得所有分割的子字符串,其语法格式如下:

public string[] Split(params char[] separator);

separator:是一个数组,包含分隔符
例:

            string strA = "AI时代已然到来,再不努力就要被淘汰!";
            char[] separator = { ',' };     //声明分割字符的数组
            String[] splitStrings = new string[100];
            splitStrings = strA.Split(separator);
            for (int i = 0; i < splitStrings.Length; i++)
            {
                Console.WriteLine(splitStrings[i]);
            }
            Console.ReadLine();

运行结果:
运行结果

6、插入和填充字符串

6.1 插入字符串

String类提供了一个Insert()方法,用于向字符串的任意位置插入新元素,其语法如下:

public string Insert(int startIndex, string value)

startIndex:指定所要插入的位置,索引从0开始
value:指定所要插入的字符串

            string str1 = "梦想还是要有的,万一实现了呢!";
            string str2;
            str2 = str1.Insert(0, "马云说:");
            string str3;
            str3 = str2.Insert(str2.Length - 1, "你信吗!");
            Console.WriteLine(str3);
            Console.ReadLine();

运行结果:
运行结果

6.2 填充字符串

String类提供了PadLeft()/PadRight()方法用于填充字符串,PadLeft()方法在字符串的左侧进行字符填充,而PadRight()方法在字符串的右侧进行字符填充。PadLeft()方法的语法格式如下:

public string PadLeft(int totalWidth, char paddingChar);

PadRight()方法的语法格式如下:

public string PadRight(int totalWidth, char paddingChar)

totalWidth:指定填充后的字符串长度
paddingChar:指定所要填充的字符,如果省略,则填充空格符号

            String str1 = "*^_^*";
            string str2 = str1.PadLeft(str1.Length+1, '(');
            str2 = str2.PadRight(str2.Length+1, ')');
            Console.WriteLine(str2);

运行结果:
运行结果

7、删除字符串

String类提供了一个Remove()方法,用于从一个字符串的指定位置开始,删除指定数量的字符,其语法格式如下:

//删除起始位置后的所有内容(包含起始位)
public string Remove(int startIndex);

public string Remove(int startIndex, int count);

startIndex:用于指定开始删除的位置,索引从0开始(不可为负数)
count:指定删除的字符数量(不能为0或是负数)

例:

            string strPart = "今天你学习了吗?";
            string strAll = "学到老,活到老,哈哈哈哈";

            Console.WriteLine($"删除指定个数的字符串:{strPart.Remove(0, 2)}");
            Console.WriteLine($"删除起始位置后所有的字符串:{strAll.Remove(7)}");

运行结果:
运行结果

8、复制字符串

String类提供了Copy()方法和CopyTo()方法,用于将字符串或子字符串复制到另一个字符串Char类型的数组中。

8.1 Copy()方法

创建一个与指定字符串具有相同值的字符串的 新实例,其语法格式如下:

public static string Copy(string str)

str:代表要复制的字符串。
返回值:与str相同的字符串

例:

            string oriStr = "今天你学习了吗?";
            string copyStr = string.Copy(oriStr);
            Console.WriteLine($"复制后的字符串:{copyStr}");

            copyStr += "学到老,活到老";

            Console.WriteLine($"原字符串:{oriStr}");
            Console.WriteLine($"复制并修改后的字符串:{copyStr}");

            Console.ReadLine();

运行结果:
运行结果

8.2 CopyTo()方法

该方法功能yuCopy()方法基本相同,但是CopyTo()方法可以将字符串的某一部分复制到另一个Char类型的字符数组中,其语法格式如下:

public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count);

方法参数如下:

参数说明
sourceIndex需要复制的字符的起始位置
destination目标字符数组
destinationIndex指定目标数组中的开始存放位置
count指定要复制的字符个数

例:

            string oriStr = "今天你学习了吗?";
            char[] copyStr = new char[100];
            oriStr.CopyTo(0, copyStr, 0,8);
            Console.WriteLine(copyStr);

运行结果:
运行结果

9.替换字符串

String 类提供了一个 Replace()方法,用于将字符串中的某个字符或字符串替换成其他的字符或字符串,其语法格式如下:

public string Replace(char OChar, char NChar)
public string Replace(string OValue, string NValue)

方法参数如下:

参数说明
OChar代替换的字符
NChar替换后的新字符
OValue代替换的字符串
NValue替换后的新字符串

例:

            string oriStr = "今天你学习了!";
            string newStr = oriStr.Replace('你', '我');
            Console.WriteLine($"原字符串:{oriStr}");
            Console.WriteLine($"替换字符后的字符串:{newStr}");

            Console.WriteLine();
            string oriStr2 = "今天你学习了吗?";
            string newStr2 = oriStr2.Replace("你学习了吗?", "我学习了!并且会一直在持续着!");
            Console.WriteLine($"原字符串:{oriStr2}");
            Console.WriteLine($"替换字符串后的字符串:{newStr2}");

运行结果:
返回一个新字符串,并不会修改原字符串内容

  • 30
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

默九思

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

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

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

打赏作者

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

抵扣说明:

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

余额充值