如何在 C# 中將字串轉換為整型 Int

Puneet Dobhal 2023年1月30日 2020年6月9日
  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