拆分字符串并与数组进行比较
本文关键字:比较 数组 字符 字符串 串并 拆分 | 更新日期: 2023-09-27 18:33:03
所以我有以下字符串和数组字符串
例 1
string str = "name1, something2,else , any,thing";
string[] strArray = {"name1" , "something2,else" , "any,thing"};
例 2
string str = "A,B,C,D,E,F,G"
string [] strArray = {"A,B" , "C", "D,E", "F,G","I,J,K","L,M","H,N"}
string[] outputArray = {"A,B" , "C", "D,E", "F,G"}
那么我如何将 str 与 strArray 进行比较以正确拆分它呢?
请注意,strArray 不是输出,它是一个输入数组,以帮助理解字符串 str 的拆分。
您可以使用通用的 Split,它将在空格上拆分,然后您可以使用 Trim 删除不需要的逗号,如下所示。
static void Main(string[] args)
{
char[] trimchar = {','};
string str = "name1, name2,2 ,name3";
var result = str.Split();
for (int i = 0; i < result.Length; i++)
{
result[i] = result[i].Trim(trimchar);
}
string[] strArray = { "name1", "name2,2", "name3" };
}
或者正如西蒙建议的那样,你可以像这样拆分逗号和空格的组合。
static void Main(string[] args)
{
string[] trimChars = { " ,", ", " }; //Note leading and trailing commas
string str = "name1, name2,2 ,name3,new";
string[] strArray = { "name1", "name2,2", "name3" };
}
根据 OP 关于使用 strArray 检查有效项目的最后一条评论进行编辑。使用 String.Compare 并将结果放入List<String>
这样做比因为不知道项目数而重新变暗数组更容易。
static void Main(string[] args)
{
string str = "A,B,C,D,E,F,G";
string[] strArray = { "A,B", "C", "D,E", "F,G", "I,J,K", "L,M", "H,N" };
List<string> results = new List<string>();
foreach (var item in strArray)
{
if (str.Contains(item))
{
results.Add(item);
}
}
}
您可以通过正则表达式进行拆分:
string[] strArray = Regex.Split(str, @",(?!'d)");
// Captures "name1", "name2,2" and "name3"
意义:
捕获逗号,其中下一个字符不是数字。