一、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"。