Der Titel könnte nicht beschreibend sein, aber bleib bei mir. Diese ist wie Buble Sortierung sollte wie folgt aussehen:Wie zum Bubblesort? | C#
string s = Console.ReadLine();
StringBuilder sb = new StringBuilder(s);
for (int i = 0; i < sb.Length; i++)
{
for (int j = 0; j < sb.Length - 1; j++)
{
if (sb[j] > sb[j + 1])
{
char tmp = sb[j];
sb[j] = sb[j + 1];
sb[j + 1] = tmp;
}
}
}
s = sb.ToString();
Console.WriteLine(s);
Jedoch habe ich es versehentlich, wie dies schrieb, und ich weiß nicht, warum ist diese Arbeits sollte ich nicht zumindest eine indexOutOfRange Ausnahme bekommen? ->
Um dies zu verdeutlichen, werden die Buchstaben eines Wortes alphabetisch geordnet
Ihre Indizes sind in der zweiten Version immer in Reichweite. Sie verwenden nur 'i' und' j', und beide sind immer kleiner als 'Length', was für den String und seine Kopie im' StringBuilder' gleich ist. Warum sollten Sie eine Ausnahme erwarten? –
Die meisten oder alle Argumente der 'Fragen, die Debugging-Hilfe suchen (" Warum funktioniert dieser Code nicht? ")' Sind für diese Frage "Warum funktioniert dieser Code?" Gültig. Also, ich stimme zu schließen. Übrigens ist dies wahrscheinlich die erste Frage, "warum funktioniert dieser Code", der mir hier auf SO begegnet :) – fvu