Salutations. Imaginez que vous avez reçu une chaîne de caractères (de quelque part que vous ne pouvez pas contrôler). Dans cette chaîne est un nombre décimal. Vous voulez ajouter des virgules (c'est-à-dire: transformer 1234567.89 en 1.234.567.89) à ce nombre tout en gardant la chaîne entière intacte. Le symbole de devise avant le nombre variera, mais le format de virgule ne doit pas varier selon la culture.Ajout de virgules à un nombre décimal compris dans une chaîne de texte avec .NET 2.0
Existe-t-il un moyen facile de faire cela dans .NET?
S'il n'y a pas un moyen facile, je vais entrer dans plus de détails quant à ce que j'avais prévu de faire. Nous pouvons utiliser string.Substring() pour sortir le nombre car il est toujours entre un texte statique. Par exemple:
Notre chaîne:
string s1 = "Blah Blah Blah. Total price: $1234567.89; Blah Blah Blah Blah"
Nous pouvons obtenir au prix comme celui-ci:
int start = s1.IndexOf("Total price: ") + 13;
int length = s1.IndexOf(";") - start;
string trim = s1.Substring(start, length);
Prenez le caractère de monnaie, laisser le reste:
char curr = trim[0];
string sAmount = s1.Substring(1, s1.Length);
maintenant nous pouvons formater notre nombre décimal:
decimal dAmount;
if (decimal.TryParse(sAmount, out dAmount))
{
string formattedPrice = curr + dAmount.ToString("N2");
Console.WriteLine(formattedPrice);
}
Maintenant, je pourrais simplement insérer la chaîne résultante dans ma chaîne d'origine où elle devrait aller. Le point d'écrire cette question est que cela me semble très méchant, et j'espérais trouver une meilleure façon de faire face à cela.
Merci pour votre temps. Je vais rafraîchir cela pour la prochaine heure et choisirai une réponse dans ce délai.
Absolument parfait. Merci! – JoeB