如何获取长度未知的子字符串
本文关键字:未知 字符串 何获取 获取 | 更新日期: 2023-09-27 18:24:17
我有一个字符串,其中表名每次都会更改。如何找到子字符串并使用其值。例如
示例字符串:
表"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
执行同样的操作,其中表的名称每次都会更改?
您可以使用像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);