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

时间:2014-03-19 18:39:01

标签: c#

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

例如:

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

因此,如果用户输入" | c",则应返回" Blue"

如果用户输入" | m",则应返回"番茄","小麦"作为2个字符串。

如果用户输入" | p",则应返回" Daisy"," Rose"," Cabbage"和" 100个单位"作为4个不同的字符串。

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

注意:这只是一个样本数据,实际数据包括| a - | z,| A - | Z

2 个答案:

答案 0 :(得分:2)

string.Split()开始标记字符串。

然后遍历每个令牌。拉出第一个字符并使用第一个字符作为键构建Dictionary<char, string>,将余数作为值。

然后只需对所需字符进行字典查找即可找到相关的标记。

答案 1 :(得分:0)

首先获取输入,然后解析它。使用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
    }
}