我可以使用什麼,將返回一個布爾變量,將聲明,如果我可以安全地解析一個字符串?如何問一個字符串變量是否可以解析爲一個int變量?
1847年將返回true 18O2將返回false
並請,沒有什麼太複雜......
我可以使用什麼,將返回一個布爾變量,將聲明,如果我可以安全地解析一個字符串?如何問一個字符串變量是否可以解析爲一個int變量?
1847年將返回true 18O2將返回false
並請,沒有什麼太複雜......
你應該在TryParse方法看看
您可以使用int.TryParse
int result = 0;
bool success = int.TryParse("123", out result);
這裏成功將成真,如果解析成功和fals其他明智和結果將解析詮釋值。
使用int.TryParse
:
int i;
bool canBeParsed = int.TryParse("1847", out i);
if(canBeParsed)
{
Console.Write("Number is: " + i);
}
var str = "18o2"
int num = 0;
bool canBeParsed = Int32.TryParse(str, out num);
我一直在使用這些擴展方法多年。也許在開始時更復雜一些,但它們的使用非常簡單。您可以使用類似的模式擴展大部分簡單值類型,包括Int16
,Int64
,Boolean
,DateTime
等。
using System;
namespace MyLibrary
{
public static class StringExtensions
{
public static Int32? AsInt32(this string s)
{
Int32 result;
return Int32.TryParse(s, out result) ? result : (Int32?)null;
}
public static bool IsInt32(this string s)
{
return s.AsInt32().HasValue;
}
public static Int32 ToInt32(this string s)
{
return Int32.Parse(s);
}
}
}
要使用這些,只是包括MyLibrary
與using
聲明命名空間的列表。
"1847".IsInt32(); // true
"18o2".IsInt32(); // false
var a = "1847".AsInt32();
a.HasValue; //true
var b = "18o2".AsInt32();
b.HasValue; // false;
"18o2".ToInt32(); // with throw an exception since it can't be parsed.