如何在 C# 中将字符串转换为整型 Int

Puneet Dobhal 2023年10月12日
  1. C# 字符串到整型的转换 - Int16.Parse() / Int32.Parse() / Int64.Parse() 方法
  2. C# 将字符串转换为整型的方法 - Int16.TryParse() / Int32.TryParse() / Int64.TryParse() 方法
  3. C# 从字符串到整型的转换-Convert.ToInt16() / Convert.ToInt32() / Convert.ToInt64() 方法
如何在 C# 中将字符串转换为整型 Int

在使用 C# 进行编码时,将字符串转换为整型是一件很容易的事。在本文中,我们将介绍一些最简单且推荐的方法来实现此目的。

C# 字符串到整型的转换 - Int16.Parse() / Int32.Parse() / Int64.Parse() 方法

Parse() 方法可用于将数字的字符串表示形式转换为等效的 16/32/64 位带符号整数。出于代表性的目的,从现在开始我们将仅涵盖 32 位转换。

using System;

public class Instance {
  public static void Main() {
    string str_var = "123";
    int num_var = Int32.Parse(str_var);
    System.Console.WriteLine(num_var);
  }
}

输出:

123

使用此方法的一个小缺点是,如果字符串不是数字序列,则抛出 FormatException

尽管 Parse() 会忽略字符串开头和结尾的空格,但除此之外,所有字符都必须具有适当的数值才能成功转换。

我们建议使用 try...catch 语句来处理异常,如下所示。

using System;

public class Instance {
  public static void Main() {
    string str_var = "abc";
    try {
      int num_var = Int32.Parse(str_var);
      System.Console.WriteLine(num_var);
    } catch (FormatException) {
      System.Console.WriteLine("Invalid String");
    }
  }
}

输出:

Invalid String

C# 将字符串转换为整型的方法 - Int16.TryParse() / Int32.TryParse() / Int64.TryParse() 方法

TryParse() 被认为是 Parse() 方法的合适替代方法,TryParse() 方法在失败的情况下不会引发异常。相反,如果转换失败,它只会返回 False

using System;

public class Instance {
  public static void Main() {
    bool result;
    string str_var = "111";
    int num_var;
    result = Int32.TryParse(str_var, out num_var);
    if (result)
      System.Console.WriteLine(num_var);
    else
      System.Console.WriteLine("Invalid String");
  }
}

输出:

111

C# 从字符串到整型的转换-Convert.ToInt16() / Convert.ToInt32() / Convert.ToInt64() 方法

Convert() 方法将字符串变量作为参数,并返回等效的 16/32/64 位带符号数字值。与 Parse() 方法类似,使用这种方法你需要一个 try...catch 语句来处理异常。

using System;

public class Instance {
  public static void Main() {
    string str_var = "123";
    try {
      int num_var = Convert.ToInt32(str_var);
      System.Console.WriteLine(num_var);
    } catch (FormatException) {
      Console.WriteLine("Invalid String");
    } catch (OverflowException) {
      Console.WriteLine("The string cannot fit in 32 bit value");
    }
  }
}

输出:

123

异常的代价很高,通常不将其包括在程序流中。但是有时它们可​​能对提取重要信息(例如,Convert() 方法中的溢出条件)有用。

上述所有方法都同样有效,并且在实现时需要权衡取舍。我们建议根据我们在本文中提出的考虑因素选择最佳的解决方案。

相关文章 - Csharp Integer

相关文章 - Csharp String