[.NET] [C#] doppelte/mehrfache strings "aussperren"

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von juppwatis, 13. Oktober 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 13. Oktober 2007
    [C#] doppelte/mehrfache strings "aussperren"

    hi @ all

    zur übung habe ich von nem kollegen vorgeschlagen bekommen, dass ich ein prog schreiben soll, bei welchem man einen string eingibt (so lang wie man will). dann soll man überprüfen, welche wörter darin doppelt vorkommen und diese ausschließen und danach die eingabe wieder ausgeben, jedoch ohne die doppelten wörter. als bsp.:

    der benutzer gibt ein:
    "ich heiße hans georg. ich wohne in musterhausen und ich bin 55 jahre alt."

    nachdem mein prog dann durchlaufen ist, sollte die ausgabe so aussehen:

    "ich heiße hans georg. wohne in musterhausen und bin 55 jahre alt."

    also jedes wort, welches mehr als 1mal vorkommt wird ausgeschlossen.
    ich hab schonmal angefangen und dachte mir, dass ich nach der eingabe erst mal die strings splitte. das habe ich bisher auch realisieren können. und jetzt muss ich ja die strings miteinander irgendwie vergleichen können, damit ich die doppelten ausschließen kann, richtig? doch da hängt es bei mir. wie kann ich eine solce abfrage gestalten? kann mir wer vll stichwörter sagen oder bsp machen oder so?
    hier mal mein bisheriger code:

    Code:
    using System;
    using System.Collections;
    
    namespace splitten
    {
     class Program
     {
     public static void Main(string[] args)
     {
     string eingabe;
     Console.WriteLine("Bitte Satz eingaben: \n");
     eingabe = Console.ReadLine(); 
     Splitten(eingabe);
     Console.ReadLine();
     }
     public static void Splitten(string input)
     {
     string[] split = input.Split(' ');
     for (int i = 0; i < split.Length; i++)
     {
     Console.WriteLine(split[i]); 
     }
     }
     }
    }
    
    wäre euch sehr dankbar

    mir wurde geagst, dass ich das am besten mit ner hashtable mache, aber keine ahnung wie es machen muss...vll kann mir das wer sagen bzw helfen?

    mfg
     
  2. 13. Oktober 2007
    AW: [C#] doppelte/mehrfache strings "aussperren"

    Code:
     public static string Splitten(string input)
     {
     string tmp = "";
     foreach (string word in input.Split(' '))
     {
     if (tmp.IndexOf(word) <= 0)
     {
     tmp += word + " ";
     }
     }
     return tmp;
     }
    
    Wenn du Groß/Kleinschreibung vernachlässigen willst, dann diese Zeile verwenden:
    Code:
    if (tmp.IndexOf(word, StringComparison.CurrentCultureIgnoreCase) <= 0)
     
  3. 13. Oktober 2007
    AW: [C#] doppelte/mehrfache strings "aussperren"

    ? und wo ist hier die ausgabe? und der hashtable? komisch irgendwie...für nen anfänger wie mich ein wenig unverständlich

    mfg
     
  4. 13. Oktober 2007
    AW: [C#] doppelte/mehrfache strings "aussperren"

    ähm, die Funktion gibt einen String zurück, den kannst du dann selber ausgeben.
    Und wieso ne Hashtable?
    Funktioniert doch so auch ganz gut (auch wenns sicherlich nicht die optimalste Lösung ist). Aber wenn du das mit ner Hashtable machen willst, dann kannst dus ja machen (Auch wenn es mir unsinnig erscheint.)

    Noch nen allgemeiner Tipp: Lies dir am besten mal Galileo Computing - openbook - B&uuml;cher online lesen und herunterladen komplett durch. Du stellst nämlich sehr viele Fragen die zum Teil durch einfache Logik (nachdenken ), zum anderen durch dieses Buch beantwortet werden können.
     
  5. 13. Oktober 2007
    AW: [C#] doppelte/mehrfache strings "aussperren"

    also bei mir funktioniert dein programm nicht wirklich so wie es sollte. es gibt alles wieder aus. lies dir nochmal das bsp oben durch. das geschieht bei mir irgendwie nicht, wenn ich deinen code verwende...

    und mag sein, dass ich hier viele fragen stelle...das liegt daran, dass ich totaler anfänger bin. und für was gibts ne communitiy, wenn man nicht frägt? du hast sicher in der schule auch schonmal fragen gestellt, obwohl es auch im buch stand das geschriebene ist manchmal halt nich so einfach zu verstehen, wie vll von nem user hier, der einfach worte verwendet

    mfg

    //EDIT

    so erledigt...nach vielem lesen und stöbern hab ich es geschafft:

    Code:
    using System;
    using System.Collections;
    
    namespace splitten
    {
     class Program
     {
     public static void Main(string[] args)
     {
     string eingabe;
     Console.WriteLine("Bitte Satz eingaben: \n");
     eingabe = Console.ReadLine(); 
     Console.WriteLine("\n\n");
     Splitten(eingabe); 
     Console.ReadLine();
     }
     public static void Splitten(string input)
     {
     string[] split = input.Split(' ');
     Hashtable neu = new Hashtable();
     for (int i = 0; i < split.Length; i++)
     { 
     if(!neu.ContainsValue(split[i]))
     {
     neu.Add(i, split[i]);
     } 
     Console.Write(neu[i] + " ");
     } 
     }
     }
    }
    
    mfg
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.