string s = "Der Fuchs rennt um den Bau";
Regex exp = new Regex(@"...|.*", RegexOptions.IgnoreCase);
MatchCollection matchList = exp.Matches(s);
IEnumerable<string> stringParts = (from Match match in matchList
select match.Value);
foreach (string stringPart in stringParts)
{
Console.WriteLine(stringPart);
}
IEnumerable<string> stringParts = (from Match match in matchList
select match.Value);
foreach (Match match in matchList)
{
stringParts.Add(match.Value);
}
|
|
|
Zu erwähnen seit noch das MatchCollection nur IEnumerable(nicht generisch) ist,also wer es lieber mit Lamda macht muss erst Casten: var stringParts = matchList.Cast<Match>().Select((p)=>p.Value);
– Thomas Sczyrba 30.09.2011
|
string blub = "Der Fuchs rennt um den Bau";
string[] woerter = blub.Split(' ');
|
|
|
Das wird so nicht funktionieren. Die Split-Methode hat keine Überladung, welche einen einzelnen String als Parameter entgegen nimmt. Versuche es mit Split(' ') anstatt Split(" ").
– dkson 29.09.2011
|
||
|
Danke für den Hinweis. Wenn die "Beitrag editieren" funktionieren würde könnte ich das jetzt verbessern.. ;-)
– puls200 29.09.2011
|
||
|
Auch hier sind wir einer Meinung. Aber jetzt wird's ein bisschen spitzfindig ;-)
– puls200 30.09.2011
|
Da muss es doch was geben um einen String wie "Der Fuchs rennt um den Bau" in Teile zu zerlegen, also Wörter.
var s = "Der Fuchs rennt um den Bau";
var woerterliste = s.Split(' ');
Das gleiche brauche ich dann aber auch noch, indem ich nach einer bestimmten Anzahl an Buchstaben teile.
//Für Leute, die LINQ nutzen, um ihre Gedanken in Code umzusetzen :-)
var s = "Der Fuchs rennt um den Bau";
var teillaenge = 6;
var teile = Enumerable.Range(0, s.Length)
.Where(i => i % teillaenge == 0)
.Select(i => s.Substring(i, Math.Min(teillaenge, s.Length - i)));
|
|
string blub = "Der Fuchs rennt um den Bau";
int charCount = 6;
List<string> parts = new List<string>();
for(int i = 0; i < Math.Ceiling((double)blub.Length/charCount); i++){
parts.Add(blub.Substring(i * charCount, Math.Min(charCount, blub.Length - (i * charCount))));
}
//Inhalt von parts:
// Der Fu
// chs re
// nnt um
// den B
// au
for(int i = 0; i < Math.Ceiling((double)blub.Length/charCount); i++){blub.Substring(i * charCount, Math.Min(charCount, blub.Length - (i * charCount)))
|
|
| 2 |
Das liefert ein gutes Ergebnis wenn man Leerzeichen bzw. Whitespace als eigener Buchstabe einordnet. Möchte man das nicht ist es mit Regex sicherlich leichter.
Grüße, Daniel – puls200 29.09.2011
|
|
|
@puls200: Die gleiche Idee hatte ich auch und war gerade am Tippen während du den Kommentar schriebst ;)
– Jürgen Luhr 29.09.2011
|
Wäre ich so nie drauf gekommen :D