c#之字符串函数
1.常用的字符串函数
Compare 比较字符串的内容,考虑文化背景(场所),确定某些字符是否相等
int Compare(string str1,string str2)
int Compare(string str1,string str2,bool )
CompareOrdinal 与Compare一样,但不考虑文化背景
CmpareTo 以实例对象本身指定的字符串作出比较
public int CompareTo(string strB)
Equals 主要比较两个字符串是否相同
public bool Equals(string value)
public static bool Equals(string a,string b)
Format 格式化包含各种值的字符串和如何格式化每个值的说明符
public static string Format(string format,object obj)
IndexOf 定位字符串中第一次出现某个给定子字符串或字符的位置
Substring 可以截取字符串中指定位置和长度的字符
public string Substring(int startlndex,int lenth)
IndexOfAny 定位字符串中第一次出现某个字符或一组字符的位置
LastIndexOf 与IndexOf一样,但定位最后一次出现的位置
LastIndexOfAny 与IndexOfAny,但定位最后一次出现的位置
PadLeft 在字符串的开头,通过添加指定的重复字符填充字符串
public string Padleft(int tatalWidth,char paddingChar)
PadRight 在字符串的结尾,通过添加指定的重复字符填充字符串
public string Padleft(int tatalWidth,char paddingChar)
Replace 用另一个字符或子字符串替换字符串中给定的字符或子字符串
public string Replace(char Ocahr,char Ncahr)
publci string Replace(string Ovalue,string nvalue)
2.可变字符串类StringBuilder的使用
动态串StringBuilder
与String类相比,System.Text.StringBuilder类可以实现动态字符串。此外,动态的含义是指在修改字符串时,系统不需要创建新的对象,不会重复开辟新的内存空间,而是直接在原StringBuilder对象的基础上进行修改。下面,将从各个应用的角度,详细讨论StringBuilder类。
2.1 声明StringBuilder串
StringBuilder类位于命名空间System.Text中,使用时,可以在文件头通过using语句引入该空间:
using System.Text;
声明StringBuilder对象需要使用new关键字,并可以对其进行初始化。如以下语句声明了一个StringBuilder对象myStringBuilder,并初始化为“Hello”:
StringBuildermyStringBuilder=new StringBuilder("Hello");
如果不使用using关键字在文件头引入System.Text命名空间,也可以通过空间限定来声明StringBuilder对象:
System.Text.StringBuildermyStringBuilder=new StringBuilder("Hello");
在声明时,也可以不给出初始值,然后通过其方法进行赋值。
2.2 设置StringBuilder容量
StringBuilder对象为动态字符串,可以对其设置好的字符数量进行扩展。另外,还可以设置一个最大长度,这个最大长度称为该StringBuilder对象的容量(Capacity)。
为StringBuilder设置容量的意义在于,当修改StringBuilder字符串时,当其实际字符长度(即字符串已有的字符数量)未达到其容量之前,StringBuilder不会重新分配空间;当达到容量时,StringBuilder会在原空间的基础之上,自动不进行设置,StringBuilder默认初始分配16个字符长度。有两种方式来设置一个StringBuilder对象的容量。
1.使用构造函数
StringBuilder构造函数可以接受容量参数,例如,下面声明一个StringBuilder对象sb2,并设置其容量为100。
//使用构造函数
StringBuilder sb2=new StringBuilder("Hello",100);
2.使用Capacity读/写属性
Capacity属性指定StringBuilder对象的容量,例如下面语句首先一个StringBuilder对象sb3,然后利用Capacity属性设置其容量为100。
//使用Capacity属性
StringBuilder sb3=new StringBuilder("Hello");
sb3.Capacity=100;
3. 追加操作
追加一个StringBuilder是指将新的字符串添加到当前StringBuilder字符串的结尾处,可以使用Append和AppendFormat来实现这个功能。
1. Append方法
Append方法实现简单的追加功能,常用形式为:
public StringBuilder Append(object value);
其中,参数value既可以是字符串类型,也可以是其他的数据类型,如bool、byte、int等。下例中,把一个StringBuilder字符串“Hello”追加为“Hello World!”。
//Append
StringBuilder sb4=new StringBuilder("Hello");
sb4.Append(" World!");
2.AppendFormat方法
AppendFormat方法可以实现对追加部分字符串的格式化,可以定义变量的格式,并将格式化后的字符串追加在StringBuilder后面。常用的形式为:
StringBuilder AppendFormat(string format,params object[] args);
其中,args数组指定所要追加的多个变量。format参数包含格式规范的字符串,其中包括一系列用大括号括起来的格式字符,如{0:u}。这里,0代表对应args参数数组中的第0个变量,而‘u’定义其格式。下例中,把一个StringBuilder字符串“Today is”追加“Today is *当前日期*\”。
//AppendFormat
StringBuilder sb5=new StringBuilder("Today is ");
sb5.AppendFormat("{0:yyyy-MM-dd}",System.DateTime.Now);
Console.WriteLine(sb5); //形如:"Today is 2008-10-20"
4. 插入操作
StringBuilder的插入操作是指将新的字符串插入到当前的StringBuilder字符串的指定位置,如“Hello”变为“Heeeello”。可以使用StringBuilder类的Insert方法来实现这个功能,常用形式为:
public StringBuilder Insert(int index, object value);
其中,参数index指定所要插入的位置,并从0开始索引,如index=1,则会在原字符串的第2个字符之前进行插入操作;同Append一样,参数value并不仅是只可取字符串类型。
5. 删除操作
StringBuilder的删除操作可以从当前StringBuilder字符串的指定位置,删除一定数量的字符,例如把“Heeeello”变为“Hello”。可以使用StringBuilder类的Remove方法来实现这个功能,常用形式为:
public StringBuilder Remove(int startIndex, int length);
其中,参数startIndex指定所要删除的起始位置,其含义同Insert中的index相同;length参数指定所要删除的字符数量。下例中,把一个StringBuilder字符串“Heeeello”通过删除操作修改为“Hello”。
//Remove
StringBuilder sb7=new StringBuilder("Heeello");
sb7.Remove(2,3); //在”He”后面删除个字符
Console.WriteLine(sb7); //"Hello!"
6. 替换操作
StringBuilder使用Replace方法来实现替换操作,例如把“Hello”变为“Hero”,就需要使用替换操作,将“ll”替换为“r”。这同String类的Replace方法非常类似,其常用
形式包括:
public StringBuilder Replace(char oldChar, char newChar);
public StringBuilder Replace(string oldValue, string newValue);
其中,参数oldChar和oldValue为待替换的字符和子串,而newChar和newValue为替换后的新字符和新子串。
下例把“Hello”通过替换为“Hero”。
//Replace
StringBuilder sb8=new StringBuilder("Hello");
sb8=sb8.Replace("ll","r");
Console.WriteLine(sb8); //Hero
c#之字符串函数的更多相关文章
- ThinkPHP 模板substr的截取字符串函数
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...
- SQL字符串函数
LEN() :计算字符串长度(字符的个数.)datalength();//计算字符串所占用的字节数,不属于字符串函数.测试varchar变量与nvarchar变量存储字符串a的区别.见备注1.LOWE ...
- Python3中的字符串函数学习总结
这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...
- TSQL 字符串函数:截断和查找
字符串截断函数是指:Stuff 和 SubString,字符串查找函数是:CharIndex 和 PatIndex 一,SubString 截取子串 最常用的字符串函数,用于截取特定长度的子串. SU ...
- c#编程基础之字符串函数
c#常用的字符串函数 例一: 获取字符串的大小写函数 ToLower():得到字符串的小写形式 ToUpper():得到字符串的大写形式 注意: 字符串时不可变的,所以这些函数都不会直接改变字符串的内 ...
- SQLSERVER常见系统函数之字符串函数(一)
好久没有写博客了,这段时间准备写一下字符串函数 QQ群: 499092562:欢迎交流 字符串函数: 1.LEN(需要获取长度的字符串) 返回:字符串的长度 示例: SELECT LEN('小搬运工很 ...
- python笔记-字符串函数总结
字符串函数: chr() 数字转ASCII chr(96)="a" ord() ASCII转数字 ord("a")=96 isspace() 判断是否为空格 s ...
- Sql Server函数全解<一>字符串函数
阅读目录 1.ASCII()函数 2.CHAR()函数 3.LEFT()函数 4.RIGHT()函数 5.LTRIM()函数 6.RTRIM()函数 7.STR()函数 8.字符串逆序的函数REVER ...
- Sql Server系列:字符串函数
字符串函数用于对字符和二进制字符串进行各种操作,大多数字符串函数只能作用于char.nchar.varchar和nvarchar数据类型.字符串函数可以用在SELECT或者WHERE语句中. 1. A ...
- 前端学PHP之字符串函数
× 目录 [1]特点 [2]输出 [3]空格[4]大小写[5]HTML[6]格式化[7]比较 前面的话 字符串的处理和分析在任何编程语言中都是一个重要的基础,往往是简单而重要的.信息的分类.解析.存储 ...
随机推荐
- AWS安装CDH5.3-CentOS6.4
1.下载CM启动文件 [root@ip-172-31-23-107 ec2-user]# wget http://archive.cloudera.com/cm5/installer/latest/c ...
- (Python爬虫01)-本想给随笔加个序号才发现这么不方便
本想给随机加个序号,才发现还得去返回看看文章的序号.好在cnblog能断点自动保存. 作为一个小程序员,点赞的同时还在想,谁知道咋实现这种实时保存呢?有知道的给个参考文档呗.太感激了! 重点在这里 有 ...
- python学习总结----简单数据结构
mini-web服务器 - 能够完成简单的请求处理 - 使用http协议 - 目的:加深对网络编程的认识.为后面阶段学习web做铺垫 简单数据结构 - 排列组合 import itertools # ...
- LeetCode - 1. Two Sum(8ms)
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- Leetcode 678.有效的括号字符串
有效的括号字符串 给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串.有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 ). 任何右括号 ) 必须 ...
- 查看lwjgl常用状态的值
在遇到状态值较多较复杂的情况,可以选择使用GL11.glIsEnabled()或者GL11.glGet()函数来查看状态机值,以下是常用值: public static void printOpenG ...
- IDEA无法新建GUI Form文件
因为最近想开发一个IDEA的插件,所以在开发的过程中就需要创建Swing GUI Form文件.但是在项目中右键New中始终就是没有“GUI Form”这个选项,然后自己琢磨寻思着是不是没有启用Swi ...
- STL中的set容器的一点总结2
http://blog.csdn.net/sunshinewave/article/details/8068326 1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像 ...
- Redis能做什么?不能做什么?
https://blog.csdn.net/u014229282/article/details/81174202 最近阅读了<redis设计与实现>,这是一本比较枯燥的书,毕竟涉及到re ...
- 配置Mac自带的Apache http服务器
Mac系统是自带Apache,所以很方便我们做一些http测试. 我可以先启动默认的服务器 $ sudo apachectl start 在浏览器打开:http://localhost 将会看到下面信 ...