using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main(string[] args)
Console.WriteLine(GetNumericValue(input,'R'));
Console.WriteLine(UpdateNumericValue(input, 'R', 7));
Console.WriteLine(GetNumericValue(input, 'R'));
Console.WriteLine(UpdateNumericValue(input, 'R', 3.5));
Console.WriteLine(GetNumericValue(input, 'R'));
Console.WriteLine(UpdateNumericValue(input, 'R', 765));
static string GetNumericValue(string input, char c)
int charIndex = input.IndexOf(c);
StringBuilder sb = new StringBuilder();
for (int i = charIndex + 1; i < input.Length; i++)
if (char.IsNumber(input[i]) || input[i] == '.')
if (input[i] == '.') decimalCount++;
if (decimalCount > 1) break;
static string UpdateNumericValue(string input, char c, double newVal)
var numericValue = GetNumericValue(input, c);
return input.Replace(c + numericValue, c + newVal.ToString());