C# string 实战秘笈
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#转义字符
·一种特殊的字符常量;
·以反斜线"\"开头,后跟一个或几个字符。
·具有特定的含义,不同于字符原有的意义,故称“转义”字符。
·主要用来表示那些用一般字符不便于表示的控制代码。
·它的作用是消除紧随其后的字符的原有含义
·用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义”
·用可以看见的字符表示那不可以看见的字符, 如'\n'表示换行
常用的转义字符及其含义:
\’ 单引号
\” 双引号
\\ 反斜杠 ,表示'\'字符
\0 空
\a 警告(产生峰鸣)
\b 退格
\f 换页
\r 回车,回车的意思:告诉打字机把打印头定位在左边界
\n 换行,换行意思:告诉打字机把纸向下移一行
\t 水平制表符
\v 垂直制表符
windows里表示换行用回车换行两个字符表示,连起来的就是字符串"\r\n"------十六进制等于0x0D0x0A简写等于0D0A
c#里 @ 表示的是:
"c:\\temp"表示路径是c:\temp;
而@"c:\temp"就表示c:\temp;
====================字符与字符串分割==================================================
单个字符分割
string s="abcdeabcdeabcde";
string[] sArray=s.Split('c');
foreach(string i in sArray)
Console.WriteLine(i.ToString());
输出下面的结果:
ab
deab
deab
de
多个字符分割
string s="abcdeabcdeabcde
string[] sArray1=s.Split(new char[3]{'c','d','e'});
foreach(string i in sArray1)
Console.WriteLine(i.ToString());
可以输出下面的结果:
ab
ab
ab
多个字符分割(正则表达式)
using System.Text.RegularExpressions;//Regex的头文件
string content="agcsmallmacsmallgggsmallytx";
string[] resultString=Regex.Split(content,"small",RegexOptions.IgnoreCase)
foreach(string i in resultString)
Console.WriteLine(i.ToString());
输出下面的结果:agc
mac
ggg
ytx
分割字符串
string str="aa||bb||cc||dd||";
string[] sArr=str.Split(new string[]{"||"}, StringSplitOptions.None );
out: "aa" "bb" "cc" "dd"
==================string 和float 互转=====================================
float a =float.Parse("1.123");
float x = 62.11512322f;
string s =string.Format("{0:f2}", x);//结果 s = "62.12"
=============================int 互转 string=============================
int i = 30= int.Parse(list[i++]);
string str = "567";
int a = int.Parse( str );
string b = i.Tostring();
========================c#统计一个字符在字符串出现次数的函数========================
//统计一个字符在字符串出现次数 可以使用split(char c)函数 c就是你要统计的字符,函数的返回值再减1就是字符出现的次数。
string[] sArray=string.Split('a');
int lenth =sArray.Length-1;//string有多少个a
=======================中英文字符串中提取英文=======================
我这里使
用的是Linq,如果你不会,那就使用循环吧。
var strAbc = (from p in str
where (p>='a'&&p<='z')||(p>='A'&&p<='Z')
select p);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (var item in strAbc)
{
sb.Append(item.ToString());
}
return sb.ToString();
==========中英文混合字符串 获取长度====================
///
/// 截取中英文混合字符串
///
/// 字符文本
/// 截取长度
/// replacetxt替换的多余字符
///
public string GetString(string text, int length, string replacetxt)
{
int strLength = 0;
StringBuilder strb = new StringBuilder();
char[] Temp = text.ToCharArray();
for (int i = 0; i != Temp.Length; i++)
{
if (strLength >= length) //
{
strb.Append(replacetxt);
break;
}
else
{
if (((int)Temp[i]) < 255) //大于255的都是汉字或者特殊字符
{
strLength++;
}
else
{
strLength = strLength + 2;
}
strb.Append(Temp[i]);
}
}
return strb.ToString();
}
==================C#如何删除字符串最后一位?================
string s ="lalalala";
if(!string.IsNullOrEmpty(s))
s = s.Substring(0, s.Length - 1);
===================判断一个字符串是英文或汉字==================
汉字的asc码 <0
字母的asc码65~90、97~122
判断是否为英文的话很简单,遍历该字符串中的每一个字符,检测字符是否为a-z或A-Z,如果在自然是就英文了,如果不在那肯定就不是英文了。
若想判断汉字的话,只以判断;字符是否在范围4E00..9FFF内。
using System.Text.RegularExpressions;
///
/// 判断字符串中是否包含中文
///
/// 需要判断的字符串
///
public static bool HasChinese(string str)
{
return System.Text.RegularExpressions.Regex.IsMatch(str, @"[\u4e00-\u9fa5]");
}
///
/// 判断字符串是否是包含字母
///
///
///
public static bool HasLetter(string str)
{
return System.Text.RegularExpressions.Regex.Matches(str, "[a-zA-Z]").Count>0;
}
///
/// 判断一个字符是否是字母,字母的asc码的int值为 小写:65~90、大写:97~122
///
///
///
public static bool HasLetter(char c)
{
int a = c;
if(a>=65 && a<=122 && a!=91 && a!=92 && a!=93 && a!=94 && a!=95 && a!=96)
{
return true;
}
return false;
}
=====================统计=================================
var text = ";;;";
统计一下其中"://"出现的
次数。
第一种方法:
int count=text.Length-text.Replace(@"://","//").Lenght;
第2种方法:
正则表达式 Regex.Matches(text,@ "://").Count;
第三种:
int count2 = text.Split(new string[] { @"://" }, StringSplitOptions.RemoveEmptyEntries).Length - 1;
第四种:
Regex rege = new Regex(@"://", piled);
int count = rege.Matches(text).Count;
=====================c# 首字母大写方法===================================
方法1
string result = s.Substring(0,1).ToUpper()+s.Substring(1);
方法2:
s = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(s)