Autor |
Beitrag |
DareDevil
![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
Beiträge: 70
Windows7
C# (VS 2010)
|
Verfasst: Mi 18.04.07 15:56
So habe mal wieder eine Frage,
ist es möglich das man einen String splittet und dann aber noch die Splitter auch ausgegeben werden.
Greez
Pascal
|
|
korken
Hält's aus hier
Beiträge: 5
|
Verfasst: Mi 18.04.07 16:09
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo three:four,five six seven"; System.Console.WriteLine("Original text: '{0}'", text);
string[] words = text.Split(delimiterChars); System.Console.WriteLine("{0} words in text:", words.Length);
foreach (string s in words) { System.Console.WriteLine(s); } | Moderiert von UGrohne: Beitragsformatierung überarbeitet.
|
|
DareDevil ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
Beiträge: 70
Windows7
C# (VS 2010)
|
Verfasst: Mi 18.04.07 16:16
soweit bin ich ja auch schon nur da wird dann halt nicht das ",.:" mit ausgegeben
|
|
Kha
![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Mi 18.04.07 18:40
Kurz und knapp: Selbst schreiben ![;)](images/smiles/icon_wink.gif) . Selbst wenn es solch eine Funktion irgendwo im Internet gäbe, wird die Suche wohl mindestens so viel Zeit wie das Neuschreiben in Anspruch nehmen.
|
|
korken
Hält's aus hier
Beiträge: 5
|
Verfasst: Mi 18.04.07 20:06
|
|
DareDevil ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
Beiträge: 70
Windows7
C# (VS 2010)
|
Verfasst: Mi 18.04.07 21:27
jo funktioniert thx
habe aber auch schon selber geschrieben
glaube meins ist eher über 3 ecken gemacht
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:
| if (input != "") { bool breakSplit = false; for (int i = 0; i < input.Length; i++) { switch (input[i]) { case '+': refStringList.Add(input.Substring(0, i)); refStringList.Add("+"); input = input.Remove(0, i + 1); breakSplit = true; break; case '-': refStringList.Add(input.Substring(0, i)); refStringList.Add("-"); input = input.Remove(0, i + 1); breakSplit = true; break; case '*': refStringList.Add(input.Substring(0, i)); refStringList.Add("*"); input = input.Remove(0, i + 1); breakSplit = true; break; case '/': refStringList.Add(input.Substring(0, i)); refStringList.Add("/"); input = input.Remove(0, i + 1); breakSplit = true; break; case '(': refStringList.Add(input.Substring(0, i)); refStringList.Add("("); input = input.Remove(0, i + 1); breakSplit = true; break; case ')': refStringList.Add(input.Substring(0, i)); refStringList.Add(")"); input = input.Remove(0, i + 1); breakSplit = true; break; } if (breakSplit) { break; } } SplitString(input, ref refStringList); } |
unsere leherer will halt das wir es ohne schleife machen und soll halt für einen einfachen mathematischen parser sein
|
|
Kha
![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Do 19.04.07 12:39
DareDevil hat folgendes geschrieben: | unsere leherer will halt das wir es ohne schleife machen und soll halt für einen einfachen mathematischen parser sein |
Und deine Version ist ohne Schleife ![;)](images/smiles/icon_wink.gif) ?
Da aller guten Vorschläge drei sind:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| static IEnumerable<string> SplitEx( string input, params char[] seperators) { int position = 0; do { int find = input.IndexOfAny(seperators, position); if (find > -1) { yield return input.Substring(position, find - position); yield return input[find].ToString(); position = find + 1; } else break; } while (true); if (position != input.Length) yield return input.Substring(position); } |
@korken: Benutze bei Enumerators foreach, ist um Welten einfacher.
|
|
DareDevil ![Threadstarter Threadstarter](./graphics/viewtopic/threadstarter.png)
![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![DareDevil hat insgesamt 100.0% On-Topic und 0.0% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
Beiträge: 70
Windows7
C# (VS 2010)
|
Verfasst: Do 19.04.07 13:09
ja so halb ich such halt die position vom operator
@Khabarakh
und wie muss ich jetzt deine funktion aufrufen
hat sich schon mit dem aufrufen erledigt
aber ich blicke bei dem quellecode trotzdem nicht durch
|
|
Kha
![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png) ![Kha hat insgesamt 95.6% On-Topic und 4.4% Off-Topic Beiträge geschrieben. ontopic star](./graphics/ranks/star_ontopic_full.png)
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Fr 20.04.07 16:04
Wenn es um IEnumerable, yield und Konsorten geht, wirst du im SDK unter "Iterator" fündig werden (en: "Iterators (C# Programming Guide)"). Ziemlich geniale Spielzeuge, vor allem wirst du mit Enumerators unabhängig von der Speicherung der Rückgabedaten - der User kann entscheiden, ob er sie in eine Liste oder eine andere Collection speichern oder direkt per foreach ohne Zwischenspeicherung benutzen möchte. Ansonsten hier einmal meine Methode in deiner Vorgehensweise (geraten: dürfte etwas langsamer sein). C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| static IEnumerable<string> SplitEx( string input, params char[] seperators) { int segmentStart = 0; for (int i = 0; i < input.Length; i++) if (Array.IndexOf<char>(seperators, input[i])) { yield return input.Substring(segmentStart, i - segmentStart); yield return input[i].ToString(); segmentStart = i + 1; }
if (segmentStart != input.Length) yield return input.Substring(segmentStart); } | Die Kommentare lassen sich in etwa auch auf meine erste Version übertragen.
|
|