C# 字符串之 Split()、Join()使用
2014-08-22 11:47
120 查看
很多时候处理字符串数据,比如从文件中读取或者存入-我们可能需要加入分隔符(如CSV文件中的逗号),或使用一个分隔符来合并字符串序列。
很多人都知道使用split()的方法,但使用与其对应的Join()方法的人就没有那么多。今天,让我们看看它们的应用。
只有一个字符的数组:
比方对于“A,B,C,D,E,F”可以使用‘,’或者new[]{‘,’}
有多个字符的数组:
比方对于“A,B-C,D*E,F”使用new[]{‘,’‘-‘‘*’}:
只有一个字符串的数组:
比方对于“A=>B=>C=>D=>E=>F”new[]{“=>”}
有多个字符串的数组:
比方对于“A=>B<=C=>D<=E=>F”使用new[]{“=>”,“<=”}
让我们在实例中看看:
stringtestString=
"JamesHare,1001BroadwayAve,St.Louis,MO,63101";
//传递的分割可以是一个数组
string[]results=testString.Split(new[]{','});
//或者在asp.net4.0下传递单独的一个char
results=testString.Split(',');
得到的结果如下
stringtestString=
"JamesHare,1001BroadwayAve,St.Louis,MO,63101";
//传递一个数组作为分割的标记
string[]results=testString.Split(new[]{',',
''});
//或者在4.0下可以直接这样传递
results=testString.Split(',',
'');
使用string作为分割符用法是基本一样的:
结果:
注意在这里我们必须要提供一个StringSplitOptions的选择.
这个枚举的类型有两个值:
StringSplitOptions.None:包含返回的数组中的空数组元素.
StringSplitOptions.RemoveEmptyEntries:省略返回的数组中的空数组元素.
最后,Split()有一个形式是让你可以限制返回数组元素数量的.在这种情况下,前面n-1的元素基于你的条件生成,最后一个则是剩下的没有被分割的部分:
separator类型:System.String
要用作分隔符的字符串。
values类型:System.Object[]
一个数组,其中包含要连接的元素。
返回值
类型:System.String
一个由values的元素组成的字符串,这些元素以separator字符串分隔。
看下面的例子,用StringBuilder来实现串联一组字符串:
用string.Join()可以轻松实现:
很多人可以没有意识到Join()可以合并任何类型,如int,DateTime,
double,或其他自定义的类型!
当调用string.Join()合并非字符串的数值时,它实际上会让每一个元素ToString().也就是说这些元素ToString()的定义是符合你的需求的才行–虽然大部分asp.net库中的类型都已经有了.
举例子:
很多人都知道使用split()的方法,但使用与其对应的Join()方法的人就没有那么多。今天,让我们看看它们的应用。
Split()–根据分隔符切割字符串成几部分
分割符可以是以下几种形式中的一种:只有一个字符的数组:
比方对于“A,B,C,D,E,F”可以使用‘,’或者new[]{‘,’}
有多个字符的数组:
比方对于“A,B-C,D*E,F”使用new[]{‘,’‘-‘‘*’}:
只有一个字符串的数组:
比方对于“A=>B=>C=>D=>E=>F”new[]{“=>”}
有多个字符串的数组:
比方对于“A=>B<=C=>D<=E=>F”使用new[]{“=>”,“<=”}
让我们在实例中看看:
stringtestString=
"JamesHare,1001BroadwayAve,St.Louis,MO,63101";
//传递的分割可以是一个数组
string[]results=testString.Split(new[]{','});
//或者在asp.net4.0下传递单独的一个char
results=testString.Split(',');
得到的结果如下
对待同样的字符串,我们使用‘,’和‘‘(空格):
stringtestString=
"JamesHare,1001BroadwayAve,St.Louis,MO,63101";
//传递一个数组作为分割的标记
string[]results=testString.Split(new[]{',',
''});
//或者在4.0下可以直接这样传递
results=testString.Split(',',
'');
得到下面的结果:
使用string作为分割符用法是基本一样的:
stringtestString="JamesHare,,1001BroadwayAve,St.Louis,MO,63101";
string[]results=testString.Split(new[]{",,"},StringSplitOptions.None);
结果:
注意在这里我们必须要提供一个StringSplitOptions的选择.
这个枚举的类型有两个值:
StringSplitOptions.None:包含返回的数组中的空数组元素.
StringSplitOptions.RemoveEmptyEntries:省略返回的数组中的空数组元素.
最后,Split()有一个形式是让你可以限制返回数组元素数量的.在这种情况下,前面n-1的元素基于你的条件生成,最后一个则是剩下的没有被分割的部分:
stringtestString="JamesHare,,1001BroadwayAve,,,St.Louis,MO,63101";
//返回含有两个元素的数组.
string[]results=testString.Split(new[]{','},2,StringSplitOptions.None);
for(inti=0;i<results.Length;i++)
{
Console.WriteLine("\tElement{0}:\"{1}\"",i,results[i]);
}
使用限制数量的结果是:
注意第二个元素还包含了’,’。
Join()–串联对象数组的各个元素,其中在每个元素之间使用指定的分隔符
参数separator类型:System.String
要用作分隔符的字符串。
values类型:System.Object[]
一个数组,其中包含要连接的元素。
返回值
类型:System.String
一个由values的元素组成的字符串,这些元素以separator字符串分隔。
看下面的例子,用StringBuilder来实现串联一组字符串:
string[]parts={"Apple","Orange","Banana","Pear","Peach"};
varbuilder=newStringBuilder();
for(inti=0;i<parts.Length;i++)
{
builder.Append(parts[i]);
//将最后一个','去掉
if(i!=parts.Length-1)
{
builder.Append(",");
}
}
//结果是"Apple,Orange,Banana,Pear,Peach"
varresult=builder.ToString();
用string.Join()可以轻松实现:
string[]parts={"Apple","Orange","Banana","Pear","Peach"};
varresult=string.Join(",",parts);
很多人可以没有意识到Join()可以合并任何类型,如int,DateTime,
double,或其他自定义的类型!
当调用string.Join()合并非字符串的数值时,它实际上会让每一个元素ToString().也就是说这些元素ToString()的定义是符合你的需求的才行–虽然大部分asp.net库中的类型都已经有了.
举例子:
//合并整型"1,2,3,4,5,6,7,8,9,10"
varnumsFromOneToTen=string.Join(",",Enumerable.Range(1,10));
//合并不同类型的数值==>"1-3.1415927-9/16/201112:52:22PM"
varvariousObjects=string.Join("-",newobject[]{1,3.1415927,DateTime.Now});
最后,Join()明显是支持IEnumerable<T>和object[],string[]:
string[]arr={"one","two","three"};
Console.WriteLine(string.Join(",",arr));
//.net4.0中你可以直接列出所有数值,不必要生成数组
varnumsFromOneToTen=string.Join(",","A","B","C","D","E");
varvariousObjects=string.Join("-",1,3.1415927,DateTime.Now);
结论
如果你想将一个字符串分割或者串联一些元素到一个字符串,想想能否用Split()或Join().它们在很多方面都非常有用.
相关文章推荐
- 如何:使用 Split 方法分析字符串(C# 编程指南)
- C#中使用split分割字符串的几种方法
- C#中使用Split分隔字符串的技巧
- C#中使用Split分隔字符串的技巧 (转自百度文库)
- c#使用Split分割字符串的几种方法
- C#中使用split分割字符串的几种方法小结
- C#中使用string.Split 用字符串分隔
- C#中使用Split分隔字符串的技巧
- C#中使用split分割字符串的几种方法小结
- c#字符串切割split使用方法
- C#中使用split分割字符串的几种方法
- C#中使用Split分隔字符串的技巧
- C#中使用Split分隔字符串的技巧
- C#中用 Join方法和Split方法连接和分割字符串
- 使用Split将规则字符串转化为数组,以及JOIN的用法VB6
- C#中使用Split分隔字符串的技巧
- C#中使用Split分隔字符串的技巧
- C#中使用split分割字符串的几种方法
- C#中使用split分割字符串的几种方法小结
- C#中使用split分割字符串的方法小结