using System;
public class StringConversion
{
public static void Main()
{
var str = " 10FFxxx";
string numericString = String.Empty;
foreach (var c in str)
{
// Check for numeric characters (hex in this case) or leading or trailing spaces.
if ((c >= '0' && c <= '9') || (Char.ToUpperInvariant(c) >= 'A' && Char.ToUpperInvariant(c) <= 'F') || c == ' ') {
numericString = String.Concat(numericString, c.ToString());
}
else
{
break;
}
}
if (int.TryParse(numericString, System.Globalization.NumberStyles.HexNumber, null, out int i))
Console.WriteLine($"'{str}' --> '{numericString}' --> {i}");
// Output: ' 10FFxxx' --> ' 10FF' --> 4351
str = " -10FFXXX";
numericString = "";
foreach (char c in str) {
// Check for numeric characters (0-9), a negative sign, or leading or trailing spaces.
if ((c >= '0' && c <= '9') || c == ' ' || c == '-')
{
numericString = String.Concat(numericString, c);
} else
break;
}
if (int.TryParse(numericString, out int j))
Console.WriteLine($"'{str}' --> '{numericString}' --> {j}");
// Output: ' -10FFXXX' --> ' -10' --> -10
}
}