1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| public string SpecialReplace(string input, char car, int replaceInt)
{
int debut;
// Tant qu'un caractère de remplacement est trouvé dans la chaine d'entrée "input"
while ((debut = input.IndexOf(car)) != -1)
{
// Initialise la longueur de remplacement à 1
int longueur = 1;
// parcoure les caractères suivant de la string afin de trouver la longueur à remplacer
for (int i = debut + longueur; i < input.Length; i++)
{
// Si le caractère n'est pas "car" on s'arrète
if (input[i] != car)
break;
// Sinon on incrémente la longueur et on continue
else
longueur++;
}
// Nous avons le début des caractères à replacer "debut", et la longueur "longueur"
string replaceStr = "";
// Si la longueur plus petite que le chiffre, on tronque le chiffre
if (longueur < replaceInt.ToString().Length)
replaceStr = replaceInt.ToString().Substring(replaceInt.ToString().Length - longueur);
// Sinon on complète avec des 0
else
replaceStr = replaceInt.ToString(new string('0', longueur));
input = input.Substring(0, debut) + replaceStr + input.Substring(debut + longueur);
}
return input;
} |
Partager