我有一个半复杂的文件行。这些行可以采用以下两种格式之一:
公司产品线的规格如下:
一个人的规范:
首先,我需要测试11个字符以确定字符串的类型。伪代码:
if (string.count(11) = " ")
{
ItsACompany();
}
else
{
ItsAPerson();
}
然后我需要为每种类型的规范做一个自定义计数 - 到目前为止,我发现的是一个每隔n个字符分割字符串的方法,并读取到字符串的末尾。这是递归的而不是我需要的。
我需要一个允许n根据规范更改的选项,并允许我选择char n和char y之间的所有字符。这样的事情存在吗?
答案 0 :(得分:1)
要从字符串中提取文本块,您可以编写像这样的扩展方法
namespace StringExtension
{
public static class MyExtensions
{
public static string TakeBlock(this string input, int x, int y)
{
if(y > input.Length) y = input.Length;
if(x > y) x = y;
int length = y - (x-1);
return input.Substring(x-1, length);
}
}
}
然后你可以用你的主代码调用它(假设在提取公司行数据的方法内)
string parentCompany = line.TakeBlock(1, 12);
string uniqueRef = line.TakeBlock(13,24);