我有一个字符串,表名每次都会更改。如何找到子字符串并使用其value.eg
示例字符串:
表' ProductCostHistory'。计数1,逻辑5,物理0
if (line.Contains("Count"))
{
int index = line.IndexOf("Count");
string substring2 = line.Substring(index, 12);
string scancountval = substring2.Substring(11);
}
现在我怎么能对表格ProductCostHistory
做同样的事情,表格的名称每次都会改变?
答案 0 :(得分:1)
您可以使用String.Substring
和String.IndexOf
等字符串方法。后者用于查找给定子字符串的起始索引。如果找不到,则返回-1,因此这也可用于避免额外的String.Contains
- 检查。它还有一个重载,它使用一个整数来指定开始搜索的字符位置(下面用于endIndex
):
string text = "Table 'ProductCostHistory'. Count 1, logical 5, physical 0";
int index = text.IndexOf("Table '");
if(index >= 0) // no Contains-check needed
{
index += "Table '".Length; // we want to look behind it
int endIndex = text.IndexOf("'.", index);
if(endIndex >= 0)
{
string tableName = text.Substring(index, endIndex - index);
Console.Write(tableName); // ProductCostHistory
}
}
请注意,如果您希望进行不区分大小写的比较,则.NET字符串会区分大小写:
int index = text.IndexOf("Table '", StringComparison.CurrentCultureIgnoreCase);