在C#中,将字符串转换为整数通常使用 int.Parse()
或 int.TryParse()
方法。这两种方法都可以将一个字符串转换为其数值表示的整数,但它们在处理无效格式字符串时的行为不同。
int.Parse()
int.Parse()
方法用于将字符串转换为整数。如果字符串是有效的整数表示,它将返回对应的整数值。如果字符串不是有效的整数格式,它将抛出一个 FormatException
。
string value = "123";
try
{
int number = int.Parse(value);
Console.WriteLine(number);
}
catch (FormatException)
{
Console.WriteLine("字符串格式不正确");
}
catch (OverflowException)
{
Console.WriteLine("数值超出了 int 的范围");
}
int.TryParse()
int.TryParse()
方法提供了一种更安全的方式来尝试将字符串转换为整数。它不会抛出异常,而是返回一个布尔值,指示转换是否成功,并通过输出参数返回转换后的整数值。
string value = "123";
if (int.TryParse(value, out int number))
{
Console.WriteLine(number);
}
else
{
Console.WriteLine("转换失败");
}
如果你需要将字符串转换为整数,并且这个字符串可能包含特定的格式或前缀(例如货币符号、十六进制数等),你可以使用 int.Parse()
或 int.TryParse()
的重载版本,它们允许你指定一个 NumberStyles
枚举和一个 IFormatProvider
。
例如,将十六进制的字符串转换为整数:
string hexValue = "1A3F";
int number = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
Console.WriteLine(number); // 输出:6719
或者处理包含货币符号的字符串:
string currencyValue = "$1,234";
int number = int.Parse(currencyValue, System.Globalization.NumberStyles.Currency);
Console.WriteLine(number); // 输出:1234
使用这些方法,你可以根据需要将字符串安全且有效地转换为特定的整数。
领取专属 10元无门槛券
手把手带您无忧上云