我需要帮助来开发一个逻辑,当用户输入"分隔符时,它将提取部分字符串"
例如:
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
答案 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
}
}