Autor Beitrag
tobyyy
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 06.11.09 21:04 
Servus!
Also eigentlich habe ich bei meinem Programm fast alles so hinbekommen wie es sein soll. Allerdings möchte ich, wenn die Umlaute gelöscht werden, dass kein Leerzeichen zurückbleibt. Das heißt aus "Hallo Leute" soll "Hll Lt" und nicht "H ll L t" werden.
Wär cool, wenn ihr mir helfen könnt.

Hier mal der Quellcode:

using System;


ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
class hausi2
{
static void entf_vokal(string woerter, string vokal)
   {  

     char[] feld=new char[woerter.Length];
     for(int x=0; x<woerter.Length; ++x){
     feld[x]=Convert.ToChar(woerter[x]);
   
     }
   
     for(int x=0;x<woerter.Length; ++x){
     if(feld[x]==vokal[0])
     feld[x]='\0';

     }

     for(int x=0;x<woerter.Length; ++x){
     if(feld[x]==vokal[1])
     feld[x]='\0';

     }

     for(int x=0;x<woerter.Length; ++x){
     if(feld[x]==vokal[2])
     feld[x]='\0';

     }

     for(int x=0;x<woerter.Length; ++x){
     if(feld[x]==vokal[3])
     feld[x]='\0';

     }

     for(int x=0;x<woerter.Length; ++x){
     if(feld[x]==vokal[4])
     feld[x]='\0';

     }

     for(int x=0;x<feld.Length;++x){
     Console.Write(feld[x]);
     }
   }
static void Main()
   {
     string woerter_eingabe=Console.ReadLine();
     string vokale="aeiou";
     entf_vokal(woerter_eingabe,vokale);
   }

}



Grüße,
Tobi

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Zuletzt bearbeitet von tobyyy am Fr 06.11.09 22:37, insgesamt 1-mal bearbeitet
JasonDelife
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

Windows 7 Professional
C# (Visual Studio 2008 Professional), Java (NetBeans IDE 6.7)
BeitragVerfasst: Fr 06.11.09 21:21 
Ein StringBuilder wäre hier wohl besser.
Zudem solltest du "umlaute" auch in einer Schleife durchgehen, in der du den char zu einem String wandelst und diesen dann mittels Replace(string, string) durch den String "" ersetzen lässt.

Grüße, JasonDelife.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 06.11.09 21:36 
Nur, damit ich das richtig verstehe:

Du schreibst eine Methode "sortier", die bekommt einen String mit dem Namen "woerter" übergeben, der nur ein Wort enthält. Die (durch fehlende Einrückung praktisch unlesbare) Methode soll das eine Wort gar nicht sortieren, was ja auch sinnfrei wäre, sondern Umlaute entfernen, was Du mit einem Beispiel deutlich machst, wo aber Vokale entfernt werden.

Insgesamt bleibt mir da nur der Hinweis auf String.Replace, denke ich. Wenn Du genauer weißt, was Du willst und Dein Quelltext so ist, dass man ihn lesen will, kann man wohl besser helfen ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
tobyyy Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 06.11.09 22:42 
Okay entschuldigung ich habe den Quellcode jetzt etwas "verschönert". Aber ich denke mein Problem ist trotzdem deutlich geworden.
Ihr habt mir ja schon den Vorschlag mit string.Replace gemacht. Könntet ihr das noch etwas genauer erläutern? Programmier jetzt erst seit einem Monat mit C# und habs leider noch net so drauf.

Grüßle
JasonDelife
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

Windows 7 Professional
C# (Visual Studio 2008 Professional), Java (NetBeans IDE 6.7)
BeitragVerfasst: Fr 06.11.09 23:03 
So ungefähr:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
// text ist ein StringBuilder, charsToRemove ein String oder Char-Array
foreach(char c in charsToRemove) {
 text.Replace(c.ToString(), ""); // Ersetze mit nichts ("")
                                 // c.ToString() muss sein, damit die Replace(string, string)-Methode aufgerufen wird
}
// Jetzt kannst du text.ToString() zurückgeben

Ich hoffe es ist ersichtlich, was der Code tun soll. Wenn nicht, dann frag' einfach.
Anmerkung: Ich weiß natürlich nicht, wie es mit der Performance bei großen Texten aussieht, aber es sollte für dein Problem genügen.

Grüße, JasonDelife.