2010-01-12 7 views
0

Compte tenu de la chaîneComment substituer place les détenteurs d'une chaîne avec des valeurs

string command = "%ans[1]%*100/%ans[0]%" 

REMPLACERONS à % ans [1]% à tableau [1] % ans [0]% à tableau [2]

Comment puis-je remplacer le porte-à command place avec les valeurs du tableau pour obtenir le résultat suivant? Dois-je utiliser des expressions régulières pour cela?

Et en utilisant Regex.Replace?

"test2*100/test1" 
+0

élaborer votre question - essayer de poser le problème plus clairement – Amarghosh

+5

Pourquoi suis-je pas surpris que cette question d'un orateur anglais de toute évidence non indigène a été voté pour fermer 3 fois plutôt que de tenter de clarifier la question. Ce site devient pire tous les jours. Pour le demandeur, votre question est incroyablement peu claire. Essayez de reformuler ou de fournir un exemple de code pour obtenir plus d'aide. – Chris

Répondre

2

Vous pouvez essayer d'utiliser une norme Remplacer.

Quelque chose comme

string command = "%ans[1]%*100/%ans[0]%"; 
string[] array = new string[] { "test1", "test2" }; 
for (int iReplace = 0; iReplace < array.Length; iReplace++) 
    command = command.Replace(String.Format("%ans[{0}]%", iReplace), array[iReplace]); 
+0

Wow, c'est un peu bizarre. Eh bien, pas vraiment je suppose. – tarn

+0

Peut utiliser Regex.Replace? –

+1

Vous pouvez certainement utiliser Regex.Replace, mais il est beaucoup plus difficile pour un problème aussi simple. Regex n'est certainement pas * nécessaire * ici. C'est une solution simple, facile à comprendre et à travailler (ou du moins il semble :)). – Eilon

3

Vous pouvez simplement utiliser string.Format pour insérer votre chaîne dans la chaîne de commande:

string command = "{0}*100/{1}"; 

string[] array = new string[] { "test1", "test2" }; 

string.Format(command, array[1], array[0]); 
+0

Et si le format de 'command' ne peut pas être changé? (Je ne sais pas si cela est le cas,. Peut-être @monkey_boys peut préciser) – dtb

+0

chaîne Pour tapis doit donner pas fixe chaîne argument passé dynamique utilisé –

+0

Je suis d'accord avec vous, je ne pensais que ce ce qu'il voulait faire. –

1

Ce fait, mais je doute que c'est ce que vous cherchez. Tant pis.

for (int i = 0; i < array.Length; i++) 
{ 
    command = command.Replace(string.Format("%ans[{0}]%", i), array[i]); 
} 
Questions connexes