根据分隔符提取部分字符串

本文关键字:字符串 提取部 分隔符 | 更新日期: 2023-09-27 17:51:08

我需要帮助开发一个逻辑,当用户输入"分隔符"时提取字符串的一部分

例如:

string data = "|cBlue|pDaisy|pRose|mTomato|mWheat|pCabbage|p100 units|d19.0";
string userInput = //User enter input

所以,如果用户输入"|c",它应该返回"Blue"

如果用户输入"|m",它应该返回"Tomato", "Wheat"作为2个字符串。

如果用户输入"|p",它应该返回"雏菊"、"玫瑰"、"卷心菜"answers"100个单位"作为4个不同的字符串。

如果用户输入不存在的内容,例如|z,它将不返回任何内容或返回空字符串"。

注意:这只是一个样本数据,实际数据由|a - |z, |a - |z组成

根据分隔符提取部分字符串

从string. split()开始对字符串进行标记。

然后遍历每个标记。取出它的第一个字符,并使用第一个字符作为键,其余字符作为值构造一个Dictionary<char, string>

然后简单地对所需的字符进行字典查找以找到相关的标记。

首先获取输入,解析它。使用Split方法,然后按首字母过滤words,如下所示:

var userInput = Console.ReadLine();
if(userInput.Length == 2)
{
    var words = data.Split(userInput[0]).Where(x => x.StartsWith(userInput[1].ToString()));
    if(words.Any())
    {
       var result = words.Select(x => x.Substring(1)).ToList();
    }
    else 
    {
       // no word found
    }
}