我有以下返回的打印机:
{Ta005000000000000000000F 00000000000000000I 00000000000000000N 00000000000000000FS 00000000000000000IS 00000000000000000NS 00000000000000000}
好的,我需要在列表中保存部分退货。
e.g。
[0] "Ta005000000000000000000F"
[1] "00000000000000000I"
[2] "00000000000000000N"
...
问题是字符数会有所不同。 A试图让它进入'空间',取得子串,但失败了......
有什么建议吗?
答案 0 :(得分:6)
在单个空格中使用String.Split,并使用StringSplitOptions.RemoveEmptyEntries
确保多个空格仅被视为一个分隔符:
var source = "00000000000000000FS 0000000...etc";
var myArray = source.Split(' ', StringSplitOptions.RemoveEmptyEntries);
@EDIT:摆脱大括号的一种优雅方式是将它们包含在Split
中作为分隔符(感谢评论中的Joachim Isaksson):
var myArray = source.Split(new[] {' ', '{', '}'}, StringSplitOptions.RemoveEmptyEntries);
答案 1 :(得分:2)
您可以使用正则表达式:
string input = "{Ta005000000000000000000F 00000000000000000I 00000000000000000N 00000000000000000FS 00000000000000000IS 00000000000000000NS 00000000000000000}";
IEnumerable<string> matches = Regex.Matches(input, "[0-9a-zA-Z]+").Select(m => m.Value);
答案 2 :(得分:1)
您可以使用string.split创建子字符串数组。拆分允许您指定多个分隔符,并在必要时忽略重复拆分。
答案 3 :(得分:0)
您可以使用“String”类的.Split成员并将部分拆分为您想要的部分。 样本将是:
string[] input = {Ta005000000000000000000F 00000000000000000I 00000000000000000N 00000000000000000FS 00000000000000000IS 00000000000000000NS 00000000000000000};
string[] splits = input.Split(' ');
Console.WriteLine(splits[0]); // Ta005000000000000000000F
等等。
答案 4 :(得分:0)
刚刚击球。不考虑包围的括号:
string printMsg = "Ta005000000000000000000F 00000000000000000I
00000000000000000N 00000000000000000FS
00000000000000000IS 00000000000000000NS 00000000000000000";
string[] msgs = printMsg.Split(' ').ForEach(s=>s.Trim()).ToArray();
可以工作。