📌  相关文章
📜  在C#中将String转换为Integer的不同方法

📅  最后修改于: 2021-05-29 23:26:42             🧑  作者: Mango

像其他编程语言一样,在C#中,我们可以将字符串转换为int。有三种转换方法,如下所示:

  • 使用解析方法
  • 使用TryParse方法
  • 使用( System.Convert类)中的Convert方法

输入字符串可以是“ 10”,“ 10.10”,“ 10GeeksforGeeks”,“” (您的字符串可以是数字,字符的组合或空字符串)之类的任何东西。
当给定的字符串是数字或浮点数时,我们可以直接使用上面列出的任何方法将其从字符串转换为int,但是字符和空字符串的组合将引发错误,需要使用特殊处理才能捕获。

1.使用解析方法

在这里,我们正在计算一个圆的面积,但是给定的输入长度是字符串格式,因此使用Int32.Parse()方法将长度从字符串转换为int(等效于32位有符号整数)。

// C# program to convert string to 
// integer using Parse Method
using System;
  
namespace GeeksforGeeks {
  
class GFG{
  
    // Main Method
    public static void Main(string[] args)
    {
  
        // Taking a string
        string l = "10";
  
        // using the Method
        int length = Int32.Parse(l);
  
        // Finding the area of a square
        int aofs = length * length; 
  
        Console.WriteLine("Area of a circle is: {0}", aofs);
    }
}
}

输出:

Area of a circle is: 100

当我们拥有的值大于Integer时:如果将值big赋给字符串,则它将通过OverflowException,因为int数据类型无法处理大值(这在很大程度上取决于数据类型的范围)。

string l="10000000000";

输出将为System.OverflowException: Value was either too large or too small for an Int32.

当我们有空字符串时:如果将字符串保留为空白,则它将通过系统格式异常作为异常,因为输入为空白。

string l="";

输出将是: System.FormatException:输入字符串的格式不正确。

2.使用TryParse方法

在这里,我们使用了TryParse()方法,Parse()和TryParse()方法的区别仅在于TryParse()方法始终返回该值,它将永远不会引发异常。如果您仔细查看输入的值,则可以清楚地表明它会引发异常,但TryParse()绝不会引发异常。因此,输出为零。

// C# program to convert string to 
// integer using TryParse Method
using System;
  
namespace GeeksforGeeks {
  
class GFG{
  
    // Main Method
    public static void Main(string[] args)
    {
  
        // Taking a string
        string l = "10000000000";
        int length = 0;
  
        // using the method
        Int32.TryParse(l, out length);
  
        // Finding the area of a square
        int aofs = length * length; 
  
        Console.WriteLine("Area of a circle is: {0}", aofs);
    }
}
}

输出:

Area of a circle is: 0

3.使用转换方法

在这里,我们使用了Convert.ToInt32()方法,Parse()和Convert.ToInt32()方法的区别仅在于Convert.ToInt32()方法始终接受空值返回它。因此,输出为零。在此示例中,我们使用了特殊的处理方式,因此try块将在发生异常时引发异常,而catch块将接受异常并写入发生的任何异常。

// C# program to convert string to 
// integer using Convert Method
using System;
  
namespace GeeksforGeeks {
  
class GFG {
  
    // Main Method
    public static void Main(string[] args)
    {
  
        // Taking a string
        string l = null;
        try {
               int length = Convert.ToInt32(l);
  
               // Finding the area of a square
               int aofs = length * length; 
  
               Console.WriteLine("Area of a circle is: {0}", aofs);
        }
        catch (Exception e) {
            Console.WriteLine("Unable to convert:Exception:" + e.Message);
        }
    }
}
}

输出:

Area of a circle is: 0