欢迎来到天天文库
浏览记录
ID:34563112
大小:29.27 KB
页数:8页
时间:2019-03-08
《字符串和字符数组之间的转换》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、字符串和字符数组之间的转换 2010-11-0216:53:00
2、 分类: C#.net工具
3、举报
4、字号 订阅 字符串类 System.String 提供了一个 voidToCharArray() 方法,该方法可以实现字符串到字符数组的转换。如下例: private void TestStringChars() { string str= "mytest"; char[]chars=str.ToCharArray(); this.textBox1.Text= ""; this.textBox1.
5、AppendText("Lengthof"mytest"is" +str.Length+ ""); this.textBox1.AppendText("Lengthofchararrayis" +chars.Length+ ""); this.textBox1.AppendText("char[2]=" +chars[2]+ ""); } 例中以对转换转换到的字符数组长度和它的一个元素进行了测试,结果如下: Lengthof"mytest"is6Lengthofchararrayis6char
6、[2]=t 可以看出,结果完全正确,这说明转换成功。那么反过来,要把字符数组转换成字符串又该如何呢?我们可以使用 System.String 类的构造函数来解决这个问题。System.String类有两个构造函数是通过字符数组来构造的,即 String(char[]) 和String[char[],int,int)。后者之所以多两个参数,是因为可以指定用字符数组中的哪一部分来构造字符串。而前者则是用字符数组的全部元素来构造字符串。我们以前者为例,在 TestStringChars() 函数中输入如下语句: char[]tcs={'t
7、', 'e', 's', 't', '', 'm', 'e'}; string tstr= new String(tcs); this.textBox1.AppendText("tstr=""+tstr+"""); 运行结果输入 tstr="testme",测试说明转换成功。实际上,我们在很多时候需要把字符串转换成字符数组只是为了得到该字符串中的某个字符。如果只是为了这个目的,那大可不必兴师动众的去进行转换,我们只需要使用 System.String 的 [] 运算符就可以达到目的。请看下例,再在TestStringC
8、hars() 函数中加入如如下语名: char ch=tstr[3]; this.textBox1.AppendText("""+tstr+""[3]=" +ch.ToString()); 正确的输出是 "testme"[3]=t,经测试,输出正确。 6. 字符串和字节数组之间的转换 如果还想从 System.String 类中找到方法进行字符串和字节数组之间的转换,恐怕你会失望了。为了进行这样的转换,我们不得不借助另一个类:System.Text.Encoding。该类提供了 bye[]GetBytes(string
9、) 方法将字符串转换成字节数组,还提供了 stringGetString(byte[]) 方法将字节数组转换成字符串。 System.Text.Encoding 类似乎没有可用的构造函数,但我们可以找到几个默认的 Encoding,即 Encoding.Default(获取系统的当前 ANSI 代码页的编码)、Encoding.ASCII(获取 7 位 ASCII 字符集的编码)、Encoding.Unicode(获取采用 Little-Endian 字节顺序的 Unicode 格式的编码)、Encoding.UTF7(获取 UTF
10、-7 格式的编码)、Encoding.UTF8(获取UTF-8 格式的编码) 等。这里主要说说 Encoding.Default 和Encoding.Unicode 用于转换的区别。 在字符串转换到字节数组的过程中,Encoding.Default 会将每个单字节字符,如半角英文,转换成 1 个字节,而把每个双字节字符,如汉字,转换成 2个字节。而 Encoding.Unicode 则会将它们都转换成两个字节。我们可以通过下列简单的了解一下转换的方法,以及使用 Encoding.Default 和Encodeing.Unicode
11、的区别:private void TestStringBytes() { string s= "C#语言"; byte[]b1=System.Text.Encoding.Default.GetByte
此文档下载收益归作者所有