c#.net常用字符串函数 字符串常用方法 string

RegionsStr = RegionsStr.Remove(RegionsStr.LastIndexOf(","), 1);   //去掉最后一个逗号

string html = "<dd><h1> 第二百三十六章 古神精神印记</h1></dd>";
var title = html.Split(new string[] { "<h1>","</h1>" }, StringSplitOptions.RemoveEmptyEntries)[1];

// 第二百三十六章 古神精神印记
//不能new char[]{},结果不是想要的

 =======================================

在做类对象自定义比对的时候,从数据库中取出的数据和本地生成的数据使用默认的ToString()输出未必一直,如下:

复制代码
//2018-01-29
//sql--date--2018-01-29 00:00:00.123
//2018-01-29 00:00:00

//1m
//sql--numeric(18, 2)--1.00
//1
复制代码

数字转换为String,使用Math.Round保留小数位数:

复制代码
public void ConvertToString()
{
    //float--f
    var a = 1f;
    Console.WriteLine(Math.Round(a, 4));//1
    a = 1.12f;
    Console.WriteLine(Math.Round(a, 4));//1.12
    a = 1.12345f;
    Console.WriteLine(Math.Round(a, 4));//1.1235

    //decimal--m,double--d
    var b = 1m;//1d;
    Console.WriteLine(Math.Round(b, 4));//1
    b = 1.12m;//1/12d;
    Console.WriteLine(Math.Round(b, 4));//1.12
    b = 1.12345m;//1.12345d
    Console.WriteLine(Math.Round(b, 4));//1.1234
}
复制代码

第一个问题就是数字本身小数点,第二个问题就是小数值四舍五入的算法。

考虑使用ToString格式化字符串,整理如下:

1.Guid

复制代码
var guid = Guid.NewGuid();
//D,N,B,P大写小写效果是一样
Console.WriteLine(guid.ToString("D"));// 10244798-9a34-4245-b1ef-9143f9b1e68a
Console.WriteLine(guid.ToString("N"));// 102447989a344245b1ef9143f9b1e68a
Console.WriteLine(guid.ToString("B"));// {10244798-9a34-4245-b1ef-9143f9b1e68a}
Console.WriteLine(guid.ToString("P"));// (10244798-9a34-4245-b1ef-9143f9b1e68a)
Console.WriteLine(guid.ToString());// 10244798-9a34-4245-b1ef-9143f9b1e68a
复制代码

2.Date

复制代码
DateTime dt = new DateTime(2018, 1, 1, 12, 5, 5, 123);//2018-01-01 05:06:07.123
Console.WriteLine(dt.ToString("y"));//2018年1月 
Console.WriteLine(dt.ToString("Y"));//2018年1月 
Console.WriteLine(dt.ToString("m"));//1月1日
Console.WriteLine(dt.ToString("M"));//1月1日 
Console.WriteLine(dt.ToString("d"));//2018-01-01   
Console.WriteLine(dt.ToString("D"));//2018年1月1日 
Console.WriteLine(dt.ToString("t"));//12:05 
Console.WriteLine(dt.ToString("T"));//12:05:05 
Console.WriteLine(dt.ToString("%d"));//1   一月中某天
Console.WriteLine(dt.ToString("%h"));//12   一天中某小时 
Console.WriteLine(dt.ToString("%H"));//12   一天中某小时
Console.WriteLine(dt.ToString("dd"));//01   一月中某天 
Console.WriteLine(dt.ToString("ddd"));//周一   一周中某一天,在AbbreviatedDayNames中定义。  
Console.WriteLine(dt.ToString("dddd"));//星期一   一星期中某一天,在DayNames中定义 
Console.WriteLine(dt.ToString("MM"));//01   一年中某月
Console.WriteLine(dt.ToString("MMM"));//一月   月份的缩写名称,在AbbreviatedMonthNames中定义。 
Console.WriteLine(dt.ToString("MMMM"));//一月   月份的完整名称,在MonthNames中定义。 
Console.WriteLine(dt.ToString("yy"));//18 
Console.WriteLine(dt.ToString("yyyy"));//2018 
Console.WriteLine(dt.ToString("gg"));//公元  
Console.WriteLine(dt.ToString("hh"));//12    12小时制
Console.WriteLine(dt.ToString("HH"));//12    24小时制
Console.WriteLine(dt.ToString("tt"));//下午    上午,下午
Console.WriteLine(dt.ToString("mm"));//05
复制代码

3.Number

复制代码
//C 货币
Console.WriteLine(2.5.ToString("C"));//¥2.50
Console.WriteLine(2.5.ToString("C5"));//¥2.50000
//D 十进制数
Console.WriteLine(25.ToString("D5"));//00025,不够前补0
//E 科学型
Console.WriteLine(25000.ToString("E"));//2.500000E+004
//F 固定点
Console.WriteLine(25.ToString("F2"));//25.00
//G 常规
Console.WriteLine(2.5.ToString("G"));//2.5
//N 数字
Console.WriteLine(2500000.ToString("N"));//2,500,000.00
//X 十六进制
Console.WriteLine(256.ToString("X"));//100
//#.00 保留小数位数
Console.WriteLine(256.ToString("#.00"));//256.00
//#,#.00 千位分隔符
Console.WriteLine(25656.ToString("#,#.00"));//256.00
//固定位数(正数部分以及小数部分都是固定位数),不足补零,0是补位,有数字则占位,没则补零
Console.WriteLine(3.5.ToString("0000.00"));//0003.50
Console.WriteLine(30000.5.ToString("0,000.00"));//30,003.50
Console.WriteLine(30000000.5.ToString("0,000.00"));//30,000,000.50
复制代码

====================================

 TrimeEnd(',')

Compare 比较字符串的内容,考虑文化背景(场所),确定某些字符是否相等

CompareOrdinal 与Compare一样,但不考虑文化背景

Format 格式化包含各种值的字符串和如何格式化每个值的说明符

IndexOf 定位字符串中第一次出现某个给定子字符串或字符的位置

IndexOfAny 定位字符串中第一次出现某个字符或一组字符的位置

LastIndexOf 与IndexOf一样,但定位最后一次出现的位置  

LastIndexOfAny 与IndexOfAny,但定位最后一次出现的位置

PadLeft 在字符串的开头,通过添加指定的重复字符填充字符串

PadRight 在字符串的结尾,通过添加指定的重复字符填充字符串

Replace 用另一个字符或子字符串替换字符串中给定的字符或子字符串



1、DateTime 数字型  
System.DateTime currentTime=new System.DateTime();  
1.1 取当前年月日时分秒  
currentTime=System.DateTime.Now;  
1.2 取当前年  
int 年=currentTime.Year;  
1.3 取当前月  
int 月=currentTime.Month;  
1.4 取当前日  
int 日=currentTime.Day;  
1.5 取当前时  
int 时=currentTime.Hour;  
1.6 取当前分  
int 分=currentTime.Minute;  
1.7 取当前秒  
int 秒=currentTime.Second;  
1.8 取当前毫秒  
int 毫秒=currentTime.Millisecond;  
(变量可用中文)  
2、Int32.Parse(变量) Int32.Parse("常量")  
字符型转换 转为32位数字型  

3、 变量.ToString()  
字符型 转换 转为  
12345.ToString("n"); //生成 12,345.00  
12345.ToString("C"); //生成 ¥12,345.00  
12345.ToString("e"); //生成 1.234500e+004  
12345.ToString("f4"); //生成 12345.0000  
12345.ToString("x"); //生成 3039 (16进制)  
12345.ToString("p"); //生成 1,234,500.00%  


4、变量.Length 数字型  
取字串长度:  
如: string str="中国";  
int Len = str.Length ; //Len是自定义变量, str是求测的字串的变量名  

5、System.Text.Encoding.Default.GetBytes(变量)  
字码转换 转为比特码  
如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);  
然后可得到比特长度:  
len = bytStr.Length;  

6、System.Text.StringBuilder("")  
字符串相加,(+ 号是不是也一样?)  
如:System.Text.StringBuilder sb = new System.Text.StringBuilder("");  
sb.Append("中华");  
sb.Append("人 民");  
sb.Append("共和国");  

7、变量.Substring(参数1,参数2);  
截取字串的 一部分,参数1为左起始位数,参数2为截取几位。  
如:string s1 = str.Substring(0,2);  

8、 String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();  
取 远程用户IP地址  

9、穿过代理服务器取远程用户真实IP地址:  
if(Request.ServerVariables["HTTP_VIA"]!=null){  
string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();  
}else{  
string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();  
}  

10、 Session["变量"];  
存取Session值;  
如,赋值: Session["username"]="小布什";  

取值: Object objName=Session["username"];  
String strName=objName.ToString();  
清 空: Session.RemoveAll();  

11、String str=Request.QueryString["变量"];  
用超链接传送变量。  
如在任一页中建超链接:<a href=Edit.aspx?fbid=23>点击</a>  
在Edit.aspx页中取值:String str=Request.QueryString["fdid"];  

12、DOC对象.CreateElement("新建节点 名");  
创建XML文档新节点  

13、父节点.AppendChild(子节点);  
将新建的子节点加到XML 文档父节点下  

14、 父节点.RemoveChild(节点);  
删除节点  

15、Response  
Response.Write("字串");  
Response.Write(变量);  
向页面输出。  

Response.Redirect("URL 地址");  
跳转到URL指定的页面  

16、char.IsWhiteSpce(字串变量,位数)——逻辑型  
查 指定位置是否空字符;  
如:  
string str="中国 人民";  
Response.Write(char.IsWhiteSpace(str,2)); //结果为:True, 第一个字符是0位,2是第三个字符。  

17、char.IsPunctuation('字符') --逻辑型  
查字符是否是标点符号  
如:Response.Write(char.IsPunctuation('A')); //返回:False  

18、(int)'字符'  
把字符转为数字,查代码点,注意是单引号。  
如:  
Response.Write((int)' 中'); //结果为中字的代码:20013  

19、(char)代码  
把数字转为字符,查代码代表的字符。  
如:  
Response.Write((char)22269); //返回“国”字。  

20、 Trim()  
清除字 串前后空格  

21 、字串变量.Replace("子字串","替换为")  
字串替换  
如:  
string str="中国";  
str=str.Replace("国","央"); //将国字换为央字  
Response.Write(str); //输出结果为“中央”  

再如:(这个非常实用)  

string str="这是<script>脚本";  
str=str.Replace("<","<font><</font>"); //将左尖括号替换为<font> 与 < 与 </font> (或换为<,但估计经XML存诸后,再提出仍会还原)  
Response.Write(str); //显示为:“这是<script>脚本”  

如果不替换,<script>将不显示,如果是一段脚本,将运 行;而替换后,脚本将不运行。  
这段代码的价值在于:你可以让一个文本中的所有HTML标签失效,全部显示出来,保护你的具有交互性的站点。  
具体实现:将你的表单提交按钮脚本加上下面代码:  
string strSubmit=label1.Text; //label1是你让用户提交数据的控件ID。  
strSubmit=strSubmit.Replace("<","<font><</font>");  
然后保存或输出strSubmit。  
用此方法还可以简单实现UBB代码。  

22、Math.Max(i,j)  
取i与j中的最大值  
如 int x=Math.Max(5,10); // x将取值 10  
23、字串对比一般都用: if(str1==str2){ } , 但还有别的方法:  

(1)、  
string str1; str2  
//语法: str1.EndsWith(str2); __检测字串str1是否以字串str2结尾,返回布尔值.如:  
if(str1.EndsWith(str2)){ Response.Write("字串str1是以"+str2+"结束的"); }  

(2)、  
//语 法:str1.Equals(str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.  

(3)、  
// 语法 Equals(str1,str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.  

24、 IndexOf() 、LastIndexOf()  
查找字串中指定字符或字串首次(最后一次)出现的位置,返回索引值,如:  
str1.IndexOf(" 字"); //查找“字”在str1中的索引值(位置)  
str1.IndexOf("字串");//查找“字串”的第一个字符在str1中的 索引值(位置)  
str1.IndexOf("字串",3,2);//从str1第4个字符起,查找2个字符,查找“字串”的第一个字符在 str1中的索引值(位置)  

25、Insert()  
在字串中指定索引位插入指定字符。如:  
str1.Insert(1," 字");在str1的第二个字符处插入“字”,如果str1="中国",插入后为“中字国”;  

26、PadLeft()、 PadRight()  
在字串左(或右)加空格或指定char字符,使字串达到指定长度,如:  
<%  
string str1="中国人";  
str1=str1.PadLeft(10,'1'); //无第二参数为加空格  
Response.Write(str1); //结果为“1111111中国人” , 字串长为10  
%>  

27、Remove()  
从指定位置开始 删除指定数的字符  
字串对比一般都用: if(str1==str2){ } , 但还有别的方法:  

1、  
string str1; str2  
//语法: str1.EndsWith(str2); __检测字串str1是否以字串str2结尾,返回布尔值.如:  
if(str1.EndsWith(str2)){ Response.Write("字串str1是以"+str2+"结束的"); }  

2、  
//语 法:str1.Equals(str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.  

3、  
// 语法 Equals(str1,str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.  

IndexOf()  
查找字串中指定字符或字串首次出现的位置,返首索引值,如:  
str1.IndexOf("字"); //查找“字”在str1中的索引值(位置)  
str1.IndexOf("字串");//查找“字串”的第一个字符在str1中的索引值(位 置)  
str1.IndexOf("字串",3,2);//从str1第4个字符起,查找2个字符,查找“字串”的第一个字符在str1中的索 引值(位置)  

1.9 取中文日期显示——年月日时分  
string strY=currentTime.ToString("f"); //不显示秒  

1.10 取中文日期显示_年月  
string strYM=currentTime.ToString("y");  

1.11 取中文日期显示_月日  
string strMD=currentTime.ToString("m");  

1.12 取当前年月日,格式为:2003-9-23  
string strYMD=currentTime.ToString("d");  

1.13 取当前时分,格式为:14:24  
string strT=currentTime.ToString("t");  
更新一下, 上面不能编辑:  

c#.net函数和方法 集(大家一起来加啊)  


1、DateTime 数字型  
System.DateTime currentTime=new System.DateTime();  
1.1 取当前年月日时分秒  
currentTime=System.DateTime.Now;  
1.2 取当前年  
int 年=currentTime.Year;  
1.3 取当前月  
int 月=currentTime.Month;  
1.4 取当前日  
int 日=currentTime.Day;  
1.5 取当前时  
int 时=currentTime.Hour;  
1.6 取当前分  
int 分=currentTime.Minute;  
1.7 取当前秒  
int 秒=currentTime.Second;  
1.8 取当前毫秒  
int 毫秒=currentTime.Millisecond;  
(变量可用中文)  

1.9 取中文日期显示——年月日时分  
string strY=currentTime.ToString("f"); //不显示秒  

1.10 取中文日期显示_年月  
string strYM=currentTime.ToString("y");  

1.11 取中文日期显示_月日  
string strMD=currentTime.ToString("m");  

1.12 取中文年月日  
string strYMD=currentTime.ToString("D");  

1.13 取当前时分,格式为:14:24  
string strT=currentTime.ToString("t");  

1.14 取当前时间,格式为:2003-09-23T14:46:48  
string strT=currentTime.ToString("s");  

1.15 取当前时间,格式为:2003-09-23 14:48:30Z  
string strT=currentTime.ToString("u");  

1.16 取当前时间,格式为:2003-09-23 14:48  
string strT=currentTime.ToString("g");  

1.17 取当前时间,格式为:Tue, 23 Sep 2003 14:52:40 GMT  
string strT=currentTime.ToString("r");  

1.18获得当前时间 n 天后的日期时间  
DateTime newDay = DateTime.Now.AddDays(100);  

2、Int32.Parse(变量) Int32.Parse("常量")  
字符型转换 转为32位数字型  

3、 变量.ToString()  
字符型 转换 转为字符串  
12345.ToString("n"); //生成 12,345.00  
12345.ToString("C"); //生成 ¥12,345.00  
12345.ToString("e"); //生成 1.234500e+004  
12345.ToString("f4"); //生成 12345.0000  
12345.ToString("x"); //生成 3039 (16进制)  
12345.ToString("p"); //生成 1,234,500.00%  


4、变量.Length 数字型  
取字串长度:  
如: string str="中国";  
int Len = str.Length ; //Len是自定义变量, str是求测的字串的变量名  

5、System.Text.Encoding.Default.GetBytes(变量)  
字码转换 转为比特码  
如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);  
然后可得到比特长度:  
len = bytStr.Length;  

6、System.Text.StringBuilder("")  
字符串相加,(+ 号是不是也一样?)  
如:System.Text.StringBuilder sb = new System.Text.StringBuilder("");  
sb.Append("中华");  
sb.Append("人 民");  
sb.Append("共和国");  

7、变量.Substring(参数1,参数2);  
截取字串的 一部分,参数1为左起始位数,参数2为截取几位。  
如:string s1 = str.Substring(0,2);  

8、 String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();  
取 远程用户IP地址  

9、穿过代理服务器取远程用户真实IP地址:  
if(Request.ServerVariables["HTTP_VIA"]!=null){  
string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();  
}else{  
string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();  
}  
10、 Session["变量"];  
存取Session值;  
如,赋值: Session["username"]="小布什";  

取值: Object objName=Session["username"];  
String strName=objName.ToString();  
清 空: Session.RemoveAll();  

11、String str=Request.QueryString["变量"];  
用超链接传送变量。  
如在任一页中建超链接:<a href=Edit.aspx?fbid=23>点击</a>  
在Edit.aspx页中取值:String str=Request.QueryString["fdid"];  

12、DOC对象.CreateElement("新建节点 名");  
创建XML文档新节点  

13、父节点.AppendChild(子节点);  
将新建的子节点加到XML 文档父节点下  

14、 父节点.RemoveChild(节点);  
删除节点  

15、Response  
Response.Write("字串");  
Response.Write(变量);  
向页面输出。  

Response.Redirect("URL 地址");  
跳转到URL指定的页面  

16、char.IsWhiteSpce(字串变量,位数)——逻辑型  
查 指定位置是否空字符;  
如:  
string str="中国 人民";  
Response.Write(char.IsWhiteSpace(str,2)); //结果为:True, 第一个字符是0位,2是第三个字符。  

17、char.IsPunctuation('字符') --逻辑型  
查字符是否是标点符号  
如:Response.Write(char.IsPunctuation('A')); //返回:False  

18、(int)'字符'  
把字符转为数字,查代码点,注意是单引号。  
如:  
Response.Write((int)' 中'); //结果为中字的代码:20013  

19、(char)代码  
把数字转为字符,查代码代表的字符。  
如:  
Response.Write((char)22269); //返回“国”字。  

20、 Trim()  
清除字 串前后空格  

21 、字串变量.Replace("子字串","替换为")  
字串替换  
如:  
string str="中国";  
str=str.Replace("国","央"); //将国字换为央字  
Response.Write(str); //输出结果为“中央”  

再如:(这个非常实用)  

string str="这是<script>脚本";  
str=str.Replace("<","<font><</font>"); //将左尖括号替换为<font> 与 < 与 </font> (或换为<,但估计经XML存诸后,再提出仍会还原)  
Response.Write(str); //显示为:“这是<script>脚本”  

如果不替换,<script>将不显示,如果是一段脚本,将运 行;而替换后,脚本将不运行。  
这段代码的价值在于:你可以让一个文本中的所有HTML标签失效,全部显示出来,保护你的具有交互性的站点。  
具体实现:将你的表单提交按钮脚本加上下面代码:  
string strSubmit=label1.Text; //label1是你让用户提交数据的控件ID。  
strSubmit=strSubmit.Replace("<","<font><</font>");  
然后保存或输出strSubmit。  
用此方法还可以简单实现UBB代码。  

22、Math.Max(i,j)  
取i与j中的最大值  
如 int x=Math.Max(5,10); // x将取值 10  

23、字串对比一 般都用: if(str1==str2){ } , 但还有别的方法:  

(1)、  
string str1; str2  
// 语法: str1.EndsWith(str2); __检测字串str1是否以字串str2结尾,返回布尔值.如:  
if(str1.EndsWith(str2)){ Response.Write("字串str1是以"+str2+"结束的"); }  

(2)、  
//语 法:str1.Equals(str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.  

(3)、  
// 语法 Equals(str1,str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.  

24、 IndexOf() 、LastIndexOf()  
查找字串中指定字符或字串首次(最后一次)出现的位置,返回索引值,如:  
str1.IndexOf(" 字"); //查找“字”在str1中的索引值(位置)  
str1.IndexOf("字串");//查找“字串”的第一个字符在str1中的 索引值(位置)  
str1.IndexOf("字串",3,2);//从str1第4个字符起,查找2个字符,查找“字串”的第一个字符在 str1中的索引值(位置)  

25、Insert()  
在字串中指定索引位插入指定字符。如:  
str1.Insert(1," 字");在str1的第二个字符处插入“字”,如果str1="中国",插入后为“中字国”;  

26、PadLeft()、 PadRight()  
在字串左(或右)加空格或指定char字符,使字串达到指定长度,如:  
<%  
string str1="中国人";  
str1=str1.PadLeft(10,'1'); //无第二参数为加空格  
Response.Write(str1); //结果为“1111111中国人” , 字串长为10  
%>  

27、Remove()  
从指定位置开始 删除指定数的字符  
<%  
string str1="我是萨达姆的崇拜者之一";  
Response.Write(str1.Remove(5,4)); //结果为“我是萨达姆之一”  
%>  

转自:http://blog.csdn.net/kevin_ysu/article/details/6755814

原文地址:https://www.cnblogs.com/xiaoshi657/p/4525124.html