C#字符数组转换剖析

开发 后端
这里介绍我们可以使用 System.String 类的构造函数来解决这个问题。System.String 类有两个构造函数是通过字符数组来构造的,即 String(char[]) 和 String[char[], int, int)。

C#语言有很多值得学习的地方,这里我们主要介绍C#字符数组转换,包括介绍字符串类 System.String 提供了一个 void ToCharArray() 方法等方面。

C#字符数组转换

字符串类 System.String 提供了一个 void ToCharArray() 方法,该方法可以实现字符串到C#字符数组转换。如下例:

  1. private void TestStringChars() {  
  2. string str = "mytest";  
  3. char[] chars = str.ToCharArray();  
  4. this.textBox1.Text = "";  
  5. this.textBox1.AppendText("Length of \"mytest\" is " + str.Length + "\n");  
  6. this.textBox1.AppendText("Length of char array is " + chars.Length + "\n");  
  7. this.textBox1.AppendText("char[2] = " + chars[2] + "\n");  

例中以对转换转换到的字符数组长度和它的一个元素进行了测试,结果如下:

  1. Length of "mytest" is 6  
  2. Length of char array is 6  
  3. char[2] = t 

可以看出,结果完全正确,这说明转换成功。那么反过来,要把C#字符数组转换成字符串又该如何呢?

我们可以使用 System.String 类的构造函数来解决这个问题。System.String 类有两个构造函数是通过字符数组来构造的,即 String(char[]) 和 String[char[], int, int)。后者之所以多两个参数,是因为可以指定用字符数组中的哪一部分来构造字符串。而前者则是用字符数组的全部元素来构造字符串。我们以前者为例,在 TestStringChars() 函数中输入如下语句:

  1. char[] tcs = {'t', 'e', 's', 't', ' ', 'm', 'e'};  
  2. string tstr = new String(tcs);  
  3. this.textBox1.AppendText("tstr = \"" + tstr + "\"\n"); 

运行结果输入 tstr = "test me",测试说明转换成功。

实际上,我们在很多时候需要把字符串转换成字符数组只是为了得到该字符串中的某个字符。如果只是为了这个目的,那大可不必兴师动众的去进行转换,我们只需要使用 System.String 的 [] 运算符就可以达到目的。请看下例,再在 TestStringChars() 函数中加入如如下语名:

  1. char ch = tstr[3];  
  2. this.textBox1.AppendText("\"" + tstr + "\"[3] = " + ch.ToString()); 

正确的输出是 "test me"[3] = t,经测试,输出正确。

【编辑推荐】

  1. C#创建Windows服务详细介绍
  2. C#动态编译简单剖析
  3. C#静态字段与实例字段分析
  4. C#匿名方法详细剖析
  5. C#命名属性简单描述
责任编辑:佚名 来源: IT专家网
相关推荐

2009-09-18 10:00:17

C#数组操作

2009-09-02 18:41:18

C#定义动态控件数组

2009-08-31 14:46:15

C# string b

2009-09-01 17:06:20

C#命名管道

2009-08-31 14:56:32

C# Byte数组转换

2009-08-28 10:50:17

C#字节数组转换成字符

2009-08-27 17:14:36

C# Socket

2009-09-07 14:29:52

C# ServiceC

2009-09-01 16:29:03

QuickSort C

2009-09-11 11:09:36

C#引用类型

2009-09-02 18:14:33

C# WebClien

2009-09-01 11:04:59

C#调用扩展方法

2009-09-11 11:17:04

C#引用类型

2009-08-27 16:29:18

C#动态编译

2009-08-27 17:51:34

C#匿名方法

2009-08-31 17:26:32

C#异常处理

2009-09-03 16:58:49

C#内存管理

2009-08-24 09:55:26

C#接口转换

2009-09-02 13:36:58

C#实现多个接口

2009-08-28 11:16:51

C#日期型数
点赞
收藏

51CTO技术栈公众号