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 } }