字符串操作技巧--zj
如何分隔字符串到数组中
string total = "aaa,bbb,ccc,dddd"; string[] strArray; char[] charArray = new char[] { ',' }; strArray = total.Split(charArray); string str = "26,24,25"; string[] split = str.Split(new Char[] { ',' }); foreach (string s in split) { if (s.Trim() != "") Console.WriteLine(s); }
格式化字符串:
String.Format
(format项,要格式化的Object)
format项格式为: { index,alignment:formatString}
index 从零开始的整数,指示对象列表中要格式化的元素
alignment 可选整数,指示包含格式化值的区域的最小宽度
formatString 格式化代码的可选字符串
必须使用成对的大括号(“{”和“}”)。因为左右大括号分别被解释为格式项的开始和结束标准数字格式字符串
C 或 c 货币 数字转换为表示货币金额的字符串。 D 或 d 十进制 只有整型才支持此格式。 E 或 e 科学计数法(指数) F 或 f 固定点 数字转换为“-ddd.ddd...”形式的字符串, G 或 g 常规 N 或 n 数字 P 或 p 百分比 R 或 r 往返过程 X 或 x 十六进制 自定义数字格式字符串
0 零占位符 # 数字占位符 . 小数点 , 千位分隔符和数字比例换算 % 百分比占位符 |转义符 'ABC' "ABC" 字符串 引在单引号或双引号中的字符被原样复制到输出字符串中,而且不影响格式化。 ; 部分分隔符 用于分隔格式字符串中的正数、负数和零各部分。 string sf=string.Format("{0}年{1}月{2}日 {3}时{4}分", Year,Month,Day,currTime.TruantTime.Hour,currTime.TruantTime.Minute);
字符串处理
string fox; fox.ToLower();//转化成小写字母 fox.ToUpper();//转化成大写字母 fox.Trim();//删除前后空格 fox.Trim(trimChars);//删除其它字符 fox.TrimStart();//删除前空格 fox.TrimEnd();//删除后空格 fox.PadLeft(10);//增加左边空格,使字串达到某长度。 fox.PadRight(10);//增加右边空格,使字串达到某长度。 fox.PadX(10,'-');//增加其它字符,使字串达到某长度。X指:Left/Right fox.Split(' ');//将字串分解成数组
类型转换
转换不规则字符串
using System.Globalization; string d="2.00"; int s=int.Parse(d,NumberStyles.AllowDecimalPoint); s=int.Parse(d);//会报错
字符串常用的方法
//获得汉字的区位码 byte[] array = new byte[2]; array = System.Text.Encoding.Default.GetBytes("啊"); int i1 = (short)(array[0] - '\0'); int i2 = (short)(array[1] - '\0'); //unicode解码方式下的汉字码 array = System.Text.Encoding.Unicode.GetBytes("啊"); i1 = (short)(array[0] - '\0'); i2 = (short)(array[1] - '\0'); //unicode反解码为汉字 string str = "4a55"; string s1 = str.Substring(0,2); string s2 = str.Substring(2,2); int t1 = Convert.ToInt32(s1,16); int t2 = Convert.ToInt32(s2,16); array[0] = (byte)t1; array[1] = (byte)t2; string s = System.Text.Encoding.Unicode.GetString(array); //default方式反解码为汉字 array[0] = (byte)196; array[1] = (byte)207; s = System.Text.Encoding.Default.GetString(array); //取字符串长度 s = "iam方枪枪"; int len = s.Length;//will output as 6 byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr.Length;//will output as 3+3*2=9 //字符串相加 System.Text.StringBuilder sb = new System.Text.StringBuilder(""); sb.Append("i "); sb.Append("am "); sb.Append("方枪枪");
查找
DataColumn[] keys = new DataColumn[1]; keys[0] = thisDataSet.Tables["Intro"].Columns["ID"]; thisDataSet.Tables["Intro"].PrimaryKey = keys; DataRow findRow = thisDataSet.Tables["Intro"].Rows.Find("2"); if (findRow == null) { Console.WriteLine("Not found"); } else { Console.WriteLine("Aleady!"); }
字符串下标调用控件
//调用 private void button1_Click(object sender, System.EventArgs e) { for (int i = 1; i < 11; i++) this.MyCheck("checkBox" + i.ToString()); } //函数 private void MyCheck(string whichone) { foreach (Control control in this.Controls) { CheckBox mycheckbox = (control as CheckBox); if (mycheckbox != null) { string myName = mycheckbox.Name.ToString(); if (myName == whichone) { mycheckbox.Checked = true; } } } }
正则表达式
using System.Text.RegularExpressions; string Text = "The software ad,is MeTone, a,is very gaaad!,Your Need"; //一般 // string Pattern="is"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); //转义,以n开头的单词 // string Pattern=@"\bn"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); //转义,以e结尾的单词 // string Pattern=@"e\b"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); //转义,以M开头,以e结尾,中间是任何数量不为空的字符,\S表示不是空白的字符,*任何数量 // string Pattern=@"\bM\S*e\b"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); //转义,以T只能是总文本中的第一个字符 // string Pattern=@"^T"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); //转义,以d只能是总文本中的第一个字符 // string Pattern=@"d$"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); //转义,.是除以换行符\n以外的任何一个字符 // string Pattern=@"g.d"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); // Console.WriteLine(NextMatch.Index); //转义,+可以重复一次或多次的前导字符 // string Pattern=@"ga+d"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); //转义,?可以重复零次或多次的前导字符 // string Pattern=@"ga+d"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); //转义,?可以重复零次或多次的前导字符 // string Pattern=@"\sa"; // MatchCollection Matches=Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture); // foreach(Match NextMatch in Matches) // Console.WriteLine(NextMatch.Index); //提取网址 Text = "I'found the URL is http://www.emay.net.cn is very good"; string Pattern = @"\b(\S+)://(\S+)(?::(\S+))?\b"; MatchCollection Matches = Regex.Matches(Text, Pattern, RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); foreach (Match NextMatch in Matches) Console.WriteLine(NextMatch);