Hi,
Kennt jemand eine elegante Lösung wie man einen String, z.B.
BegriffA BegriffB "Zusammengesetzter Begriff" BegriffC
in ein Array zerlegt, also:
[0] = BegriffA
[1] = BegriffB
[2] = Zusammengesetzter Begriff
[3] = BegriffC
Viele Grüße,
Stephan
Guckst du entweder in CommandLine: Argumentenstring zerlegen oder wie es vom Parser für Kommandozeilenparameter (CommandLineArguments) realisiert wurde.
Gruß,
dN!3L
so würde es auch gehen:
public static class MyExtensions
{
public static IEnumerable<string> MySpecialExtractor(this string input)
{
StringBuilder yieldedResult = new StringBuilder();
bool isInQuotes = false;
foreach (char c in input)
{
if (c == ' ' && !isInQuotes)
{
yield return yieldedResult.ToString();
yieldedResult.Clear();
}
else if (c == '"') isInQuotes = !isInQuotes;
else yieldedResult.Append(c);
}
if (yieldedResult.Length > 0) yield return yieldedResult.ToString();
}
}
verwendung:
string testString = "asdf fdas \"inner hehehe\" outer";
string[] result = testString.MySpecialExtractor().ToArray();
Hm, geht nicht auch ganz einfach sowas hier?
string tst = "dwefwe 2 2232 \"fw\"";
string[] tstarray = tst.Split(new char[] {' ', '\"'});
Enthält dann halt unter Umständen leere Einträge im Array, aber die kann man ja rauslöschen.
Gruß Cookiie
"Hail to the King, Baby!"
*ditsch*
ja jetzt seh ich's auch. Soll ja dann nicht gesplittet werden, wenn von " eingschlossen.
"Hail to the King, Baby!"