c#字符串转数组详解

发布时间:2023-05-21

一、Split方法的介绍

Split方法是c#中字符串转数组的最常用方法之一,它的作用是将字符串按照指定的分隔符分割成一个字符串数组。Split方法有多个重载,可以传入不同的参数进行使用。

string str = "apple,banana,pear";
char[] separator = { ',' };
string[] arr = str.Split(separator);

上述示例代码中,将会输出一个字符串数组,其内容分别为"apple","banana","pear"。在该示例中,使用","作为分隔符。

二、字符串转字符数组

c#中字符串也可以很方便地转换为字符数组,字符串的每个字符都对应着数组的一个元素。

string str = "hello world";
char[] arr = str.ToCharArray();

上述示例中,将字符串"hello world"转换成字符数组,输出的结果为{'h','e','l','l','o',' ','w','o','r','l','d'}。

三、将字符串转换为字节数组

除了字符数组外,c#中还支持将字符串转换为字节数组。在很多情况下,这种转换可以方便地进行字符串的存储和传输。

string str = "hello world";
byte[] bytes = Encoding.UTF8.GetBytes(str);

在上述示例中,将字符串"hello world"转换成了UTF8编码的字节数组。

四、以指定长度截取字符串转数组

有时候需要从字符串中截取一部分字符并转为数组,可以使用Substring方法。可以指定截取的位置和截取的长度。

string str = "hello world";
int startIndex = 3;
int length = 2;
string substr = str.Substring(startIndex, length);
char[] arr = substr.ToCharArray();

在上述示例中,截取了字符串"hello world"中从第3个字符开始的2个字符"lo",并将其转换为字符数组。

五、使用正则表达式分割字符串为数组

在一些特殊的情况下,需要使用正则表达式来分割字符串为数组。可以使用Regex类的Split方法来实现。

string str = "apple1banana2pear3";
string pattern = "\\d+";
string[] arr = Regex.Split(str, pattern);

在上述示例中,使用正则表达式"\d+"来指定分割符,将字符串"apple1banana2pear3"转为数组。

六、多维字符数组的转换

如果是将多个字符串组合成一个多维字符数组,则可以用二维数组实现。

string[] strArr1 = { "apple", "banana", "pear" };
string[] strArr2 = { "red", "yellow", "green" };
string[,] multiArr = new string[2, 3];
for (int i = 0; i < 2; i++)
{
    for (int j = 0; j < 3; j++)
    {
        if (i == 0) multiArr[i, j] = strArr1[j];
        else multiArr[i, j] = strArr2[j];
    }
}

在上述示例中,将两个一维字符串数组依次加入一个二维字符数组中,最终输出了一个包含两个一维字符串数组的二维字符数组。

七、Linq的使用

可以使用Linq来对字符串进行拆分、筛选、排序等操作。

七.1 Linq拆分字符串

string str = "apple,banana,pear";
char[] separator = { ',' };
string[] arr = str.Split(separator);
var query = from s in arr where s.Length > 4 select s;

在上述示例中,使用Linq对字符串"apple,banana,pear"进行拆分,并筛选出长度大于4的元素。

七.2 Linq排序字符串数组

string str = "apple,banana,pear";
char[] separator = { ',' };
string[] arr = str.Split(separator);
var query = from s in arr orderby s.Length select s;

在上述示例中,使用Linq将字符串"apple,banana,pear"进行拆分并按照长度进行排序。

七.3 Linq查询字符串数组中是否含有指定元素

string str = "apple,banana,pear";
char[] separator = { ',' };
string[] arr = str.Split(separator);
string target = "apple";
bool isExist = arr.Any(s => s == target);

在上述示例中,使用Linq判断字符串数组中是否含有元素"apple"。