2017-08-28 16 views
0

Das Problem ist, es die Worte wie diese gibt:Ich habe versucht, Wörter aus einem Array zu sortieren, aber es funktioniert nicht

zahlen zahlen z y wörter w sondern sind standard s r keine k junge j i hello hilla h g f e die diese bbbb bbba bbba a 

von Z bis A aber zum Beispiel die Position der Wörter „hallo“ und "hilla" sollte geändert werden und ich weiß nicht, warum sie so sind.

Ich weiß, dass es eine compareTo Funktion für Zeichen gibt. Ich würde gerne wissen, warum dies die Wörter im Array falsch sortiert.

using System; 
using System.Collections; 

namespace WortArraySortieren 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("hello junge die standard zahlen sind keine zahlen sondern diese wörter hier "); 

      string[] wordlist = new string[] {"hello","junge","die","standard","zahlen","sind","keine","zahlen","sondern","diese","wörter","hilla","a", "bbba", "bbbb", "bbba", "e", "f", "g", "h", "i", "j", "s", "w", "k", "z", "r", "y" }; 
      int length = wordlist.Length; 

      for (int m = 0; m < wordlist.Length; m++) 
      { 
       for (int i = 0; i < wordlist.Length - 1; i++) 
       { 
        string a = wordlist[i]; 
        string b = wordlist[i + 1]; 

        for (int e = 0; e < a.Length && e < b.Length;e++) 
        { 
         char letter0 = a[e]; 
         char letter1 = b[e]; 

         if (letter0 < letter1) 
         { 
          string temp = wordlist[i + 1]; 
          wordlist[i + 1] = wordlist[i]; 
          wordlist[i] = temp; 
          break; 
         } 
        } 
       } 
      } 

      for (int u = 0; u < wordlist.Length; u++) 
      { 
       Console.Write(wordlist[u] + " "); 
      } 

      Console.ReadLine(); 
     } 
    } 
} 
+1

Gibt es Gründe, nicht verwenden 'wordlist.OrderByDescending (n => s)'? –

+0

Verwenden Sie einfach 'string [] wordlist = new string [] {" Hallo "," hilla "};', So können Sie Ihren Code leicht debuggen (Zuerst tauschen Sie dieses Wort wegen 'e' nad' i' und dann Sie tauschen wieder wegen 'a' und' o') –

+1

@Arnaud F. Ich wollte es auf eigene Faust tun, ohne diese kleinen Helfer zu benutzen: D für besser in C# yeah: D hat nicht funktioniert und ich habe nicht verstanden, warum :) – Stinkepeter666

Antwort

0

Versuchen:

string[] wordlist = new string[] {"hello","junge","die","standard","zahlen","sind","keine","zahlen","sondern","diese","wörter","hilla","a", "bbba", "bbbb", "bbba", "e", "f", "g", "h", "i", "j", "s", "w", "k", "z", "r", "y" }; 

Array.Sort(wordlist, StringComparer.InvariantCulture); 

for (int u = 0; u < wordlist.Length; u++) 
{ 
    Console.Write(wordlist[u] + " "); 
} 

Siehe https://msdn.microsoft.com/en-us/library/system.array.sort(v=vs.110).aspx für mehr Details

+0

danke, ich werde diese Website zu meinen Lesezeichen speichern ^^ :)) – Stinkepeter666

+1

@ user1069816 gibt es keine Möglichkeit, dass dieser Beitrag antwortet "warum dies die Wörter im Array falsch sortiert" - nicht sicher, warum Sie Ich empfehle diesen Beitrag als Antwort zu akzeptieren. –

+0

@AlexeiLevenkov Ich nahm den Kommentar, der sagte "Danke" als ein Hinweis, dass dies das Problem gelöst hatte. – user1069816

Verwandte Themen