Ich versuche, dieses Problem des Findens zu lösen, wenn zwei Wörter Anagramme von einander sind (wenn wir eine Schnur neu anordnen, stimmt sie zweite Schnur überein).Warum funktioniert meine string.Remove() nicht wie erwartet?
Basierend auf Remove single character from a string baute ich meine eigene Funktion:
public class AreAnagrams
{
public static bool AreStringsAnagrams(string FirstString, string SecondString)
{
if (FirstString == null || b == null)
return false;
if (FirstString.Length != SecondString.Length)
return false;
for (int i = 0; i < SecondString.Length; i++)
{
if (FirstString.IndexOf(SecondString[i]) == -1)
return false;
else
FirstString.Remove(FirstString.IndexOf(SecondString[i]), 1); // Here it does not modify FirstString, even if I put 2nd parameter as 1
}
if (FirstString.Length > 0)
return false;
return true;
}
public static void Main(string[] args)
{
Console.WriteLine(AreStringsAnagrams("neural", "unreal"));
}
}
Auf meine Uhr Ich FirstString
noch sehen, wie ist. Was ist das Problem? Bitte und Danke
Siehe [Handbuch] (https://msdn.microsoft.com/en-us/library/d8d7z2kk (v = vs.110). aspx): verwende den Rückgabewert. –
C# -Strings sind unveränderlich. string.Remove gibt eine neue Zeichenfolge mit den entfernten Zeichen zurück. –
Siehe Dokumentation: https://msdn.microsoft.com/en-us/library/9ad138yc(v=vs.110).aspx –