像其他编程语言一样,在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