嗨即時嘗試讓用戶列出單詞。下一步是用戶再次鍵入其中一個單詞,然後程序將檢查列表中的字母。我找到了一種方法來解決它,但只有當檢查我自己的列表。 我想知道如何去做我需要的。不需要精確的代碼,只需要一些幫助。在C#和編碼方面仍然是新的。不介意瑞典的評論。如何將用戶輸入註冊到列表C#
static void Main(string[] args)
{
Console.WriteLine("Skriv lite olika ord:");
string[] words = Console.ReadLine().Split(null);
Console.WriteLine("Tackar! Välj ett av orden för att kolla ifall det finns Anagram ordet:");
string[] word = Console.ReadLine().Split(null);
List<string> result = new List<string>();
bool match = false;
for (int i = 0; i < words.Length; i++)
words[i] = words[i].Trim();
//Loopar igenom alla ord i arrayen, börjar med första ordet.
for (int i = 0; i < words.Length - 1; i++)
{
result.Add(words[i]);
//Loopar igenom arrays med nästkommande ord.
for (int c = 2; c < words.Length; c++)
{
//Gämför bara ifall orden har lika många bokstäver och struntar i "tomma" ord
if(words[i].Length == words[c].Length && words[i] !="")
{
//Konverterar orden till CharArray
char[] a = words[i].ToUpper().ToCharArray();
char[] b = words[c].ToUpper().ToCharArray();
//Soreterar orden i bokstavsordning
Array.Sort(a);
Array.Sort(b);
match = false;
//sätter en counter för att kunna räkna
int counter = 0;
//Loppar igen alla bokstäver i orden man jämför
// Om den hittar någon bokstav som inte stämmer överens så returners False.
// Om alla bokstäver mathar så return true.
foreach(char x in a)
{
if (x == b[counter])
match = true;
else
{
match = false;
break;
}
counter++;
}
// om alla bokstäver "matchar" så läggs de till i listan
// har words[c] = ""; ifall den hittar tomma strings
if(match)
{
result.Add(words[c]);
words[c] = "";
}
}
}
// om listan bara blir 1 ord så hittas ingen match
if (result.Count() > 1 && result[0] != "")
{
Console.Write("Anagrams: ");
foreach (string s in result)
Console.Write(s + " ");
Console.WriteLine();
}
//återställer listan
result.Clear();
}
Console.ReadKey();
如果你想讓用戶輸入一個單詞,你可以直接調用Console.ReadLine。我建議你檢查空字符串以退出程序。順便使用words.Length而不是words.Count() – bikeman868