Je chaîne comme ceLa meilleure façon d'analyser l'espace séparé Texte
/c SomeText\MoreText "Some Text\More Text\Lol" SomeText
Je veux tokenizer il, mais je ne peux pas partager les espaces. J'ai trouvé un parser un peu moche qui fonctionne, mais je me demande si quelqu'un a un design plus élégant.
Ceci est en C# btw.
EDIT: Ma version laide, bien que moche, est O (N) et peut être plus rapide que l'utilisation d'un RegEx.
private string[] tokenize(string input)
{
string[] tokens = input.Split(' ');
List<String> output = new List<String>();
for (int i = 0; i < tokens.Length; i++)
{
if (tokens[i].StartsWith("\""))
{
string temp = tokens[i];
int k = 0;
for (k = i + 1; k < tokens.Length; k++)
{
if (tokens[k].EndsWith("\""))
{
temp += " " + tokens[k];
break;
}
else
{
temp += " " + tokens[k];
}
}
output.Add(temp);
i = k + 1;
}
else
{
output.Add(tokens[i]);
}
}
return output.ToArray();
}
S'il vous plaît nous en dire plus sur ce que vous essayez d'accomplir, y compris la raison pour laquelle vous ne pouvez pas diviser sur les espaces. Ensuite, nous pouvons adapter nos réponses à votre situation. –