s.Substring(0,i) 返回 左边的i个字符
s.Substring(s.Length-i,i) 返回 右边的i个字符
int i=2;
string s="123456";
TextBox1.Text=s.Substring(0,i);
TextBox2.Text=s.Substring(s.Length-i,i);
TextBox1为"12"
TextBox2为"56"
C#字符串是使用string关键字声明的一个字符数组,字符串是用引号声明的.
字符串对象是"不可变的",即它们一旦被创建后就无法更改,对字符串操作的方法实际上返回的是新的字符串对象.如:
s1 += s2;//原s1与s2中的字符均保持不变.
//+=运算符会创建一个包含s1,s2组合内容的新字符串,结果是变量s1引用一个完全不同的字符串,原s1中的字符串依然存在,只是,变量s1已经不再指向它.
s.Substring(s.Length-i,i) 返回 右边的i个字符
int i=2;
string s="123456";
TextBox1.Text=s.Substring(0,i);
TextBox2.Text=s.Substring(s.Length-i,i);
TextBox1为"12"
TextBox2为"56"
C#字符串是使用string关键字声明的一个字符数组,字符串是用引号声明的.
字符串对象是"不可变的",即它们一旦被创建后就无法更改,对字符串操作的方法实际上返回的是新的字符串对象.如:
s1 += s2;//原s1与s2中的字符均保持不变.
//+=运算符会创建一个包含s1,s2组合内容的新字符串,结果是变量s1引用一个完全不同的字符串,原s1中的字符串依然存在,只是,变量s1已经不再指向它.
出于性能方面的原因,大量的连接或其他涉及字符串的操作应当用StringBuilder类执行:
System.Text.StringBuilder sb = new System.Text.Stringduilder();
sb.Append("one ");
sb.Append("tow ");
//...
string str = sb.ToString();//str = "one tow "
System.Text.StringBuilder sb = new System.Text.Stringduilder();
sb.Append("one ");
sb.Append("tow ");
//...
string str = sb.ToString();//str = "one tow "
@ 符号会告知字符串构造函数忽略转义符和分行符。
ToString()如同所有从 Object 派生的对象一样,字符串也提供了 ToString 方法,用于将值转换为字符串。此方法可用于将数值转换为字符串.
字符串中所包含的各个字符可以使用以下方法进行访问,如 SubString()、Replace(),、Split() 和 Trim()。
System.Console.WriteLine(s3.Substring(7, 2)); // outputs "C#",注意,位置应从0开始算
System.Console.WriteLine(s3.Replace("C#", "Basic")); // outputs "Visual Basic Express"
System.Console.WriteLine(s3.Substring(7, 2)); // outputs "C#",注意,位置应从0开始算
System.Console.WriteLine(s3.Replace("C#", "Basic")); // outputs "Visual Basic Express"
string s4 = "Hello, World";
char[] arr = s4.ToCharArray(0, s4.Length);//将字符复制到字符数组
char[] arr = s4.ToCharArray(0, s4.Length);//将字符复制到字符数组
可以用索引访问字符串中的各个字符:
string s5 = "Printing backwards";
string s5 = "Printing backwards";
for (int i = 0; i < s5.Length; i++)
{
System.Console.Write(s5[s5.Length-i-1]); //outputs "sdrawkcab gnitnirP"
}
{
System.Console.Write(s5[s5.Length-i-1]); //outputs "sdrawkcab gnitnirP"
}
将字符串中的字母更改为大写或小写,可以使用 ToUpper() 或 ToLower()
比较两个字符串的最简单方法是使用 == 和 != 运算符,执行区分大小写的比较。
字符串对象也有一个 CompareTo() 方法,它根据某个字符串是否小于 (<) 或大于 (>) 另一个,返回一个整数值。比较字符串时使用 Unicode 值,小写的值小于大写的值。
若要在一个字符串中搜索另一个字符串,可以使用 IndexOf()。如果未找到搜索字符串,IndexOf() 返回 -1;否则,返回它出现的第一个位置的索引(从零开始)。
将字符串拆分为子字符串(如将句子拆分为各个单词)是一个常见的编程任务。Split() 方法使用分隔符(如空格字符)char 数组,并返回一个子字符串数组。您可以使用 foreach 访问此数组,如下所示:
char[] delimit = new char[] { ' ' };
string s10 = "The cat sat on the mat.";
foreach (string substr in s10.Split(delimit))
{
System.Console.WriteLine(substr);
}
StringBuilder 类创建了一个字符串缓冲区,用于在程序执行大量字符串操作时提供更好的性能。StringBuilder 字符串还允许您重新分配个别字符,这些字符是内置字符串数据类型所不支持的。例如,此代码在不创建新字符串的情况下更改了一个字符串的内容:
System.Text.StringBuilder sb = new System.Text.StringBuilder("Rat: the ideal pet");
sb[0] = 'C';
//sb[0] = sb[9];//output eat: the ideal pet
System.Console.WriteLine(sb.ToString());
System.Console.ReadLine();
System.Text.StringBuilder sb = new System.Text.StringBuilder("Rat: the ideal pet");
sb[0] = 'C';
//sb[0] = sb[9];//output eat: the ideal pet
System.Console.WriteLine(sb.ToString());
System.Console.ReadLine();
将char转为string:
char[] chars = str.ToCharArray();
//......
string str2 = new string(chars);
char[] chars = str.ToCharArray();
//......
string str2 = new string(chars);
字符串转换成字符数组:
使用System.String.ToCharArray() 方法。
eg:
private void ChangeToChars()
{
string str = "test";
char[] chars = str.ToCharArray();
this.textBox1.Text = "str length is " + str.Length + "\n";
this.textBox1.AppendText("chars length is" + chars.Length + "\n");
this.textBox1.AppendText("chars[3] = " + chars[3] + "\n");
}
字符数组转换成字符串:
使用构造函数System.String(char[])
PS:System.String(char[], int, int)可以指定由字符数组中哪些字符组成字符串
eg:
private void ChangeToString()
{
char[] chars = {'t', 'e', 's', 't'};
string str = new String(chars);
this.textBox1.Text = "str = \"" + str + "\"");
}
另外可以不通过转换获取字符串中的某个字符:
使用[]运算符
eg:
private void GetChar()
{
string str = "test";
char ch = str[3];
this.textBox1.Text = "\"" + str + "\"[3] = " + ch.ToString();
}
=================================================================
/获得汉字的区位码
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("方枪枪");
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(' ')将字串分解成数组
//格式化
string sf=string.Format("{0}年{1}月{2}日 {3}时{4}分",temp.Year,temp.Month,temp.Day,currTime.TruantTime.Hour,currTime.TruantTime.Minute);
//一些正则表达式
Internet地址表达式
http://( [\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
Email地址表达式
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
邮编
\d{6}
电话号码
(\(\d{3}\)|\d{3}-)?\d{8}
//分隔字符串
string total="aaa,bbb,ccc,dddd";
string[]strArray;
char[]charArray=new char[]{','};
strArray=total.Split(charArray);
//日期
DateTime t1 = new DateTime(2002,5,30);
DateTime t2 = new DateTime(2002,5,23);
TimeSpan diff=t1-t2;
MessageBox.Show(diff.Days.ToString(
System.DateTime.Now.ToString()
DateTime d1=Convert.ToDateTime("2003-01-01 18:20:01");
string s=d1.ToString("yyyy-MM-dd HH:mm:ss");
//目录
Environment.CurrentDirectory
Application.StartupPath
使用System.String.ToCharArray() 方法。
eg:
private void ChangeToChars()
{
string str = "test";
char[] chars = str.ToCharArray();
this.textBox1.Text = "str length is " + str.Length + "\n";
this.textBox1.AppendText("chars length is" + chars.Length + "\n");
this.textBox1.AppendText("chars[3] = " + chars[3] + "\n");
}
字符数组转换成字符串:
使用构造函数System.String(char[])
PS:System.String(char[], int, int)可以指定由字符数组中哪些字符组成字符串
eg:
private void ChangeToString()
{
char[] chars = {'t', 'e', 's', 't'};
string str = new String(chars);
this.textBox1.Text = "str = \"" + str + "\"");
}
另外可以不通过转换获取字符串中的某个字符:
使用[]运算符
eg:
private void GetChar()
{
string str = "test";
char ch = str[3];
this.textBox1.Text = "\"" + str + "\"[3] = " + ch.ToString();
}
=================================================================
/获得汉字的区位码
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("方枪枪");
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(' ')将字串分解成数组
//格式化
string sf=string.Format("{0}年{1}月{2}日 {3}时{4}分",temp.Year,temp.Month,temp.Day,currTime.TruantTime.Hour,currTime.TruantTime.Minute);
//一些正则表达式
Internet地址表达式
http://( [\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
Email地址表达式
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
邮编
\d{6}
电话号码
(\(\d{3}\)|\d{3}-)?\d{8}
//分隔字符串
string total="aaa,bbb,ccc,dddd";
string[]strArray;
char[]charArray=new char[]{','};
strArray=total.Split(charArray);
//日期
DateTime t1 = new DateTime(2002,5,30);
DateTime t2 = new DateTime(2002,5,23);
TimeSpan diff=t1-t2;
MessageBox.Show(diff.Days.ToString(
System.DateTime.Now.ToString()
DateTime d1=Convert.ToDateTime("2003-01-01 18:20:01");
string s=d1.ToString("yyyy-MM-dd HH:mm:ss");
//目录
Environment.CurrentDirectory
Application.StartupPath