尝试使用C#逻辑,尝试构建一个程序,用户在该程序中输入字符串,然后可以选择从该字符串中删除哪个字母。
Console.WriteLine("Please enter a string of letters");
string input = Console.ReadLine();
Console.WriteLine("please enter letters you would like removed");
char removedLetters = Convert.ToChar(Console.ReadLine());
foreach (char letter in input)
{
Console.WriteLine(input.Replace(removedLetters,' ').ToLower());
}
这可行,但不完全可行。我将摆脱字符,但仅当以与原始输入相对应的特定方式编写时才可以。
例如helloworld->删除l =欠d
但是helloworld->删除elo =失败。
有人可以分享一些知识吗?真的想提高逻辑水平,很高兴我能做到这一点,只需要一点指导即可。
干杯
安迪
答案 0 :(得分:0)
不确定您要如何处理重复项,但C#具有可在数组上使用的Except运算符。因此,将两个字符串都转换为数组,类似的东西应该可以工作...
Console.WriteLine("Please enter a string of letters");
string input = Console.ReadLine();
char[] input_array = input.ToArray();
Console.WriteLine("please enter letters you would like removed");
string removedLetters =Console.ReadLine();
char[] remove_array = removedLetters.ToArray();
char[] leftover_array = input_array.Except(remove_array).ToArray();
Console.WriteLine(new string(leftover_array));
答案 1 :(得分:0)
像以前这样扩展Jasen的评论...
Console.WriteLine("Please enter a string of letters");
string input = Console.ReadLine();
List<char> input_array = input.ToList();
Console.WriteLine("please enter letters you would like removed");
string removedLetters = Console.ReadLine();
char[] remove_array = removedLetters.ToArray();
for (int k = 0; k < remove_array.Count(); k++)
{ input_array.RemoveAll(r=>r== remove_array[k]); }
Console.WriteLine(new string(input_array.ToArray()));
再次使用Linq(在本例中为RemoveAll)使繁重的工作自动化。我尚未测试这些工具的效率如何,它们是快速,简单的解决方案,不一定是最有效的。