目录
C# 中如何对特殊符号标记的字符串进行分割和字符提取?
一、问题提出:
在进行通信交互的过程中,通信双方通常对通信内容的格式需要特殊严格的要求。
比如:[startdata][HOST][SSSSSSSSSS][TC][stop:StopReason][enddata] 当需要对命令进行判定时 就面临对收到的交互信息进行分割提取的任务。
二、C# 分割实现方式
对于字符串的分割 一般使用String类 Split 方法:本例中的分割标志有两个 '[', ']' 。
代码实现如下:
string stopRec =“[startdata][HOST][SSSSSSSSSS][TC][stop:StopReason][enddata] ” ;
string[] stopStr = stopRec.Split(new char[2] { '[', ']' });
stopStr = stopStr.Where(s => !string.IsNullOrEmpty(s)).ToArray();
代码使用Split方法 使用两个分割标志对原始字符串进行分割:
string[] stopStr = stopRec.Split(new char[2] { '[', ']' });
代码使用 Linq语句 将字符数组中的为空字符进行剔除:
stopStr = stopStr.Where(s => !string.IsNullOrEmpty(s)).ToArray();
这样就可以将原始字符串中的分割标志内的字符进行提取。