C#中的如何:连接和分割字符串
2013-07-12 11:44
239 查看
介绍
当开发程序与外部系统交互是,通常需要以统一的形式处理数据。例如,使用Excel电子表格来处理数据。Excel可以输出一个逗号分隔值(CSV)工作表格式。使用字符串的Split()方法可以提取两个逗号之间的值。相似的,字符串的Join()方法可以从数组使用分隔符连接字符串,例如使用逗号。下面显示如何使用字符串的Split()和Join()方法:
Listing 1:连接和拆分字符串 - StringJoinSplit.cs
using System;
namespace csharp_station.howto{
class StringJoinSplit{
static void Main(string[]
args) {
// 逗号分隔字符串
string commaDelimited =
"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec";
Console.WriteLine("Original Comma Delimited String: /n{0}/n",
commaDelimited);
// 两个逗号之间的分隔线
string[] year = commaDelimited.Split(new char[] {','});
Console.WriteLine("Each individual item: ");
foreach(string month in year)
{
Console.Write("{0} ", month);
}
Console.WriteLine("/n");
// 使用新的分隔符合并字符串
string colonDelimeted = String.Join(":", year);
Console.WriteLine("New Colon Delimited String: /n{0}/n",
colonDelimeted);
string[] quarter = commaDelimited.Split(new Char[] {','}, 3);
Console.WriteLine("The First Three Items: ");
foreach(string month in quarter)
{
Console.Write("{0} ", month);
}
Console.WriteLine("/n");
string thirdQuarter = String.Join("/", year, 6, 3);
Console.WriteLine("The Third Quarter: /n{0}/n", thirdQuarter);
}
}
}
输出结果:
Original Comma Delimited String:
Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
Each individual item:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
New Colon Delimited String:
Jan:Feb:Mar:Apr:May:Jun:Jul:Aug:Sep:Oct:Nov:Dec
The First Three Items:
Jan Feb Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
The Third Quarter:
Jul/Aug/Sep
上面代码,使用逗号分隔字符串名字为commaDelimited,保存一年十二个月的名称,使用逗号分隔。拆分字符串,使用其他三种分隔符连接字符串,最后连接字符串中的第6为到第8为元素。
Split()方法的简单语法是接收一个字符串数组作为唯一参数,列出的字符串确定什么时候拆分字符串。它返回一个字符串数组,数组中的元素是特殊分隔符之间的值。下面的代码是从列表中第一个拆分符拆分:
string[] year = commaDelimited.Split(new char[] {','});
相同的方式,数组中的元素可以使用Join()方法连接成一个字符串。最简单的重载Join()方法接收两个参数:一个字符串,分隔数组中每个元素;一个要结合的元素数组。Join()是静态方法,需要使用String类型标识符,而不是string实例,执行操作。下面代码从所有的year元素中创建一个字符串,使用冒号分隔:
string colonDelimeted = String.Join(":", year);
重载
这里有一些方法的简单实现,可能比较常用。看看他们的重载方法如何执行一些特殊的操作。
Split()方法有一个带两个参数的重载方法,指定执行拆分的个数。下面代码显示拆分thecommaDelimited字符串到3个元素的数组中:
string[] quarter = commaDelimited.Split(new Char[] {','}, 3);
第一想法,可能认为数组的三个元素可能是Jan, Feb, 和 Mar,实际上不是,第一个元素是Jan,第二个元素是Feb,最后一个元素是剩下的字符串。为了明白,这里输出拆分后数组中的每个元素:
Jan Feb Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
Join()也有一个重载方法允许提取数组中的部分元素。前两个参数和前面是相同,第三个和第四个参数指定在数组中的位置和读取的元素的个数。下面代码从year数组中创建一个字符串,去第六位到第八位的元素:
string thirdQuarter = String.Join("/", year, 6, 3);
总结
字符串的Split()和Join()方法提供了拆分字符串的功能。Split()方法可以获得从字符串拆分到数组的值,Join()方法可以从数组创建一个带分隔符的字符串。同时支持自定义格式和其他程序进行信息交换。
===============================================================================
最常见的例子是,我们通过相关程序,获得一系列的 int,存在 List<int> 对象中,现在想要转换成 1,2,3 这种用逗号隔开各 int 的字符串(用在 SQL 的 in 中),可用 for 循环来完成,但还有更简单的。
string str = String.Join(",", intList.ConvertAll<string>(new Converter<int, string>(m
=> m.ToString())).ToArray());
用 String.Join 可直接将 List<string>.ToArray() 连接起来,可是我们这里是 List<int>,所以要用 ConvertAll 方法。
由于是转换为 string 类型,所以 ConvertAll 的泛型为 <string>,即 ConvertAll<string>。
ConvertAll<string> 里面跟一个 Converter 对象,结合这里,Converter 泛型为 <int, string>。
Converter 的构造函数参数可以是一个带 int 参数的方法名称,我们这里为了简便,使用的是 Lambda
表达式。
当开发程序与外部系统交互是,通常需要以统一的形式处理数据。例如,使用Excel电子表格来处理数据。Excel可以输出一个逗号分隔值(CSV)工作表格式。使用字符串的Split()方法可以提取两个逗号之间的值。相似的,字符串的Join()方法可以从数组使用分隔符连接字符串,例如使用逗号。下面显示如何使用字符串的Split()和Join()方法:
Listing 1:连接和拆分字符串 - StringJoinSplit.cs
using System;
namespace csharp_station.howto{
class StringJoinSplit{
static void Main(string[]
args) {
// 逗号分隔字符串
string commaDelimited =
"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec";
Console.WriteLine("Original Comma Delimited String: /n{0}/n",
commaDelimited);
// 两个逗号之间的分隔线
string[] year = commaDelimited.Split(new char[] {','});
Console.WriteLine("Each individual item: ");
foreach(string month in year)
{
Console.Write("{0} ", month);
}
Console.WriteLine("/n");
// 使用新的分隔符合并字符串
string colonDelimeted = String.Join(":", year);
Console.WriteLine("New Colon Delimited String: /n{0}/n",
colonDelimeted);
string[] quarter = commaDelimited.Split(new Char[] {','}, 3);
Console.WriteLine("The First Three Items: ");
foreach(string month in quarter)
{
Console.Write("{0} ", month);
}
Console.WriteLine("/n");
string thirdQuarter = String.Join("/", year, 6, 3);
Console.WriteLine("The Third Quarter: /n{0}/n", thirdQuarter);
}
}
}
输出结果:
Original Comma Delimited String:
Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
Each individual item:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
New Colon Delimited String:
Jan:Feb:Mar:Apr:May:Jun:Jul:Aug:Sep:Oct:Nov:Dec
The First Three Items:
Jan Feb Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
The Third Quarter:
Jul/Aug/Sep
上面代码,使用逗号分隔字符串名字为commaDelimited,保存一年十二个月的名称,使用逗号分隔。拆分字符串,使用其他三种分隔符连接字符串,最后连接字符串中的第6为到第8为元素。
Split()方法的简单语法是接收一个字符串数组作为唯一参数,列出的字符串确定什么时候拆分字符串。它返回一个字符串数组,数组中的元素是特殊分隔符之间的值。下面的代码是从列表中第一个拆分符拆分:
string[] year = commaDelimited.Split(new char[] {','});
相同的方式,数组中的元素可以使用Join()方法连接成一个字符串。最简单的重载Join()方法接收两个参数:一个字符串,分隔数组中每个元素;一个要结合的元素数组。Join()是静态方法,需要使用String类型标识符,而不是string实例,执行操作。下面代码从所有的year元素中创建一个字符串,使用冒号分隔:
string colonDelimeted = String.Join(":", year);
重载
这里有一些方法的简单实现,可能比较常用。看看他们的重载方法如何执行一些特殊的操作。
Split()方法有一个带两个参数的重载方法,指定执行拆分的个数。下面代码显示拆分thecommaDelimited字符串到3个元素的数组中:
string[] quarter = commaDelimited.Split(new Char[] {','}, 3);
第一想法,可能认为数组的三个元素可能是Jan, Feb, 和 Mar,实际上不是,第一个元素是Jan,第二个元素是Feb,最后一个元素是剩下的字符串。为了明白,这里输出拆分后数组中的每个元素:
Jan Feb Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
Join()也有一个重载方法允许提取数组中的部分元素。前两个参数和前面是相同,第三个和第四个参数指定在数组中的位置和读取的元素的个数。下面代码从year数组中创建一个字符串,去第六位到第八位的元素:
string thirdQuarter = String.Join("/", year, 6, 3);
总结
字符串的Split()和Join()方法提供了拆分字符串的功能。Split()方法可以获得从字符串拆分到数组的值,Join()方法可以从数组创建一个带分隔符的字符串。同时支持自定义格式和其他程序进行信息交换。
===============================================================================
最常见的例子是,我们通过相关程序,获得一系列的 int,存在 List<int> 对象中,现在想要转换成 1,2,3 这种用逗号隔开各 int 的字符串(用在 SQL 的 in 中),可用 for 循环来完成,但还有更简单的。
string str = String.Join(",", intList.ConvertAll<string>(new Converter<int, string>(m
=> m.ToString())).ToArray());
用 String.Join 可直接将 List<string>.ToArray() 连接起来,可是我们这里是 List<int>,所以要用 ConvertAll 方法。
由于是转换为 string 类型,所以 ConvertAll 的泛型为 <string>,即 ConvertAll<string>。
ConvertAll<string> 里面跟一个 Converter 对象,结合这里,Converter 泛型为 <int, string>。
Converter 的构造函数参数可以是一个带 int 参数的方法名称,我们这里为了简便,使用的是 Lambda
表达式。
相关文章推荐
- C#中的如何:连接和分割字符串
- C#中的如何:连接和分割字符串
- C#如何分割有IP+端口的字符串?
- C# 如何用多字符分割字符串
- C#中如何读取webconfig.xml里的数据库连接字符串
- C#第四章 连接分割字符串
- C#2005如何读取XML文件中的数据库连接字符串??? (好像和2003不一样啊) 急,跪求!
- C#中用 Join方法和Split方法连接和分割字符串
- C#2005如何读取XML文件中的数据库连接字符串??? (好像和2003不一样啊) 急,跪求!
- C#:总结分割、连接、替换字符串
- c#中分割字符串的几种方法
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- [转]C#数据库连接字符串 [http://blog.csdn.net/xiaokexinger/archive/2007/03/26/1541441.aspx]
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- mysql中如何更新一个字段的值为它本身的值连接上一个字符串
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- 微信通过openID发送消息/后台post、get提交并接收数据 C# .NET 配置404,500等错误信息 连接字符串
- c#中分割字符串的几种方法
- C# 连接Mysql 字符串