tur*_*009 603 .net c# string int type-conversion
我有一个TextBoxD1.Text,我想将其转换为将其int存储在数据库中.
我怎样才能做到这一点?
And*_*are 990
试试这个:
int x = Int32.Parse(TextBoxD1.Text);
Run Code Online (Sandbox Code Playgroud)
或者更好的是:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
Run Code Online (Sandbox Code Playgroud)
此外,由于Int32.TryParse返回a,bool您可以使用其返回值来决定解析尝试的结果:
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}
Run Code Online (Sandbox Code Playgroud)
如果你很好奇,那么Parse和之间的区别TryParse总结如下:
TryParse方法与Parse方法类似,只是如果转换失败,TryParse方法不会抛出异常.它消除了在s无效且无法成功解析的情况下使用异常处理来测试FormatException的需要.- MSDN
Bab*_*fas 51
Convert.ToInt32( TextBoxD1.Text );
Run Code Online (Sandbox Code Playgroud)
如果您确信文本框的内容是有效的int,请使用此选项.更安全的选择是
int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );
Run Code Online (Sandbox Code Playgroud)
这将为您提供一些可以使用的默认值.Int32.TryParse还返回一个布尔值,指示它是否能够解析,因此您甚至可以将它用作if语句的条件.
if( Int32.TryParse( TextBoxD1.Text, out val ){
DoSomething(..);
} else {
HandleBadInput(..);
}
Run Code Online (Sandbox Code Playgroud)
And*_*mer 19
int myInt = int.Parse(TextBoxD1.Text)
Run Code Online (Sandbox Code Playgroud)
另一种方式是:
bool isConvertible = false;
int myInt = 0;
isConvertible = int.TryParse(TextBoxD1.Text, out myInt);
Run Code Online (Sandbox Code Playgroud)
两者之间的区别在于,如果文本框中的值无法转换,第一个将抛出异常,而第二个将返回false.
Jac*_*cob 15
您需要解析字符串,还需要确保它是真正的整数格式.
最简单的方法是:
int parsedInt = 0;
if (int.TryParse(TextBoxD1.Text, out parsedInt))
{
// Code for if the string was valid
}
else
{
// Code for if the string was invalid
}
Run Code Online (Sandbox Code Playgroud)
Mon*_*Zhu 12
在char上使用Convert.ToInt32()时要小心!
它将返回角色的UTF-16代码!
如果只使用[i]索引操作符访问某个位置的字符串,它将返回a char而不是a string!
String input = "123678";
int x = Convert.ToInt32(input[4]); // returns 55
int x = Convert.ToInt32(input[4].toString()); // returns 7
Run Code Online (Sandbox Code Playgroud)
jor*_*lli 10
int x = 0;
int.TryParse(TextBoxD1.Text, out x);
Run Code Online (Sandbox Code Playgroud)
TryParse语句返回一个表示解析是否成功的布尔值.如果成功,则解析的值将存储到第二个参数中.
有关更多详细信息,请参见Int32.TryParse方法(String,Int32).
Sal*_*kar 10
好好享受...
int i = 0;
string s = "123";
i =int.Parse(s);
i = Convert.ToInt32(s);
Run Code Online (Sandbox Code Playgroud)
小智 9
可以对以下数据类型进行stringto转换: 、和反映 .NET 中整数数据类型的其他数据类型intintInt32Int64
下面的例子展示了这种转换:
这显示(仅供参考)数据适配器元素初始化为 int 值。可以直接这样做,
int xxiiqVal = Int32.Parse(strNabcd);
Run Code Online (Sandbox Code Playgroud)
前任。
string strNii = "";
UsrDataAdapter.SelectCommand.Parameters["@Nii"].Value = Int32.Parse(strNii );
Run Code Online (Sandbox Code Playgroud)
虽然这里已经描述了许多解决方案int.Parse,但所有答案中都缺少一些重要的解决方案.通常,数值的字符串表示因文化而异.数字字符串的元素(如货币符号,组(或千位)分隔符和小数分隔符)均因文化而异.
如果要创建将字符串解析为整数的强大方法,则考虑文化信息非常重要.如果不这样做,将使用当前的文化设置.这可能会给用户带来非常令人讨厌的惊喜 - 或者更糟糕的是,如果您正在解析文件格式.如果您只想要英语解析,最好通过指定要使用的区域性设置简单地使其显式化:
var culture = CultureInfo.GetCulture("en-US");
int result = 0;
if (int.TryParse(myString, NumberStyles.Integer, culture, out result))
{
// use result...
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请阅读CultureInfo,特别是MSDN 上的NumberFormatInfo.
您可以编写自己的extesion方法
public static class IntegerExtensions
{
public static int ParseInt(this string value, int defaultValue = 0)
{
int parsedValue;
if (int.TryParse(value, out parsedValue))
{
return parsedValue;
}
return defaultValue;
}
public static int? ParseNullableInt(this string value)
{
if (string.IsNullOrEmpty(value))
{
return null;
}
return value.ParseInt();
}
}
Run Code Online (Sandbox Code Playgroud)
而且只要在代码中调用即可
int myNumber = someString.ParseInt(); // returns value or 0
int age = someString.ParseInt(18); // with default value 18
int? userId = someString.ParseNullableInt(); // returns value or null
Run Code Online (Sandbox Code Playgroud)
在这个具体案例中
int yourValue = TextBoxD1.Text.ParseInt();
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以在 C# 中将 string 转换为 int 许多不同类型的方法
第一个主要使用:
string test = "123";
int x = Convert.ToInt16(test);
Run Code Online (Sandbox Code Playgroud)
如果 int 值较高,则应使用 int32 类型。
第二个:
int x = int.Parse(text);
Run Code Online (Sandbox Code Playgroud)
如果你想进行错误检查,可以使用TryParse方法。在下面我添加可为空类型;
int i=0;
Int32.TryParse(text, out i) ? i : (int?)null);
Run Code Online (Sandbox Code Playgroud)
享受你的代码......
正如TryParse文档中所解释的,TryParse()返回一个布尔值,表示找到了有效的数字:
bool success = Int32.TryParse(TextBoxD1.Text, out val);
if (success)
{
// put val in database
}
else
{
// handle the case that the string doesn't contain a valid number
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用扩展方法,因此它会更具可读性(尽管每个人都已经习惯了常规的 Parse 函数)。
public static class StringExtensions
{
/// <summary>
/// Converts a string to int.
/// </summary>
/// <param name="value">The string to convert.</param>
/// <returns>The converted integer.</returns>
public static int ParseToInt32(this string value)
{
return int.Parse(value);
}
/// <summary>
/// Checks whether the value is integer.
/// </summary>
/// <param name="value">The string to check.</param>
/// <param name="result">The out int parameter.</param>
/// <returns>true if the value is an integer; otherwise, false.</returns>
public static bool TryParseToInt32(this string value, out int result)
{
return int.TryParse(value, out result);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以这样称呼它:
如果您确定您的字符串是一个整数,例如“50”。
int num = TextBoxD1.Text.ParseToInt32();
Run Code Online (Sandbox Code Playgroud)如果您不确定并希望防止崩溃。
int num;
if (TextBoxD1.Text.TryParseToInt32(out num))
{
//The parse was successful, the num has the parsed value.
}
Run Code Online (Sandbox Code Playgroud)为了使其更具动态性,以便您也可以将其解析为 double、float 等,您可以进行通用扩展。
你可以使用其中之一,
int i = Convert.ToInt32(TextBoxD1.Text);
Run Code Online (Sandbox Code Playgroud)
要么
int i =int.Parse(TextBoxD1.Text);
Run Code Online (Sandbox Code Playgroud)
小智 5
//May be quite some time ago but I just want throw in some line for any one who may still need it
int intValue;
string strValue = "2021";
try
{
intValue = Convert.ToInt32(strValue);
}
catch
{
//Default Value if conversion fails OR return specified error
// Example
intValue = 2000;
}
Run Code Online (Sandbox Code Playgroud)
您可以在没有 TryParse 或内置函数的情况下执行如下操作:
static int convertToInt(string a)
{
int x = 0;
for (int i = 0; i < a.Length; i++)
{
int temp = a[i] - '0';
if (temp != 0)
{
x += temp * (int)Math.Pow(10, (a.Length - (i+1)));
}
}
return x;
}
Run Code Online (Sandbox Code Playgroud)