我有一个asp.net 4文本框控件,它的文本被一些java脚本动态填充。 Google地图电话确切无误。它给了我从一点到另一点的里程数。显示文本时,它显示“234英里”我需要摆脱此文本的“mi”部分,因为文本正在转换为Int32在我的数据库中更新表。如何删除字符串/文本框中的字符?
基本上我只能有一个INT。文本框中没有其他内容。我如何摆脱文字末尾的“mi”?
感谢 C# EB
我有一个asp.net 4文本框控件,它的文本被一些java脚本动态填充。 Google地图电话确切无误。它给了我从一点到另一点的里程数。显示文本时,它显示“234英里”我需要摆脱此文本的“mi”部分,因为文本正在转换为Int32在我的数据库中更新表。如何删除字符串/文本框中的字符?
基本上我只能有一个INT。文本框中没有其他内容。我如何摆脱文字末尾的“mi”?
感谢 C# EB
在回发,你保存它之前,你可以:
var saveValue = Int32.Parse(tbTarget.Text.Replace("mi", string.Empty).Trim());
简单String.Substring
作品也:
String leftPart = TxtMileAge.Text.Substring(0, txt.IndexOf(' '));
int mileAge = int.Parse(leftPart);
这检索的一部分String
的范围为0 - indexOfWhiteSpace,并将其转换为int
编辑:因为该值可以有小数位(如你评论),你需要把它解析到double
,圆形,然后将其转换为int
:
var txtEstDistance = new TextBox() { Text = "40.2 mi" };
String leftPart = txtEstDistance.Text.Substring(0, txtEstDistance.Text.IndexOf(' '));
double distanceMiles = double.Parse(leftPart, System.Globalization.CultureInfo.InvariantCulture);
int oDdstanceMiles = (int)Math.Round(distanceMiles, MidpointRounding.AwayFromZero);
如果你使用可变长度的字符(比如说有人输入英里数),那么你必须对字符串(char数组)进行foreach并在每个字符上检查isnumeric。
谢谢蒂姆。我试过你的代码。改变它只是一点点:
String leftPart = txtEstDistance.Text.Substring(0, txtEstDistance.Text.IndexOf(' ')); int oDistanceMiles = int.Parse(leftPart);
我得到这个错误:“长度不能小于零。 参数名称:长度”此外,正在自动填充的数字是“40.2英里”,我真正需要的只是40或任何出现的整数。在小数点处截去。我格式化子字符串是否错误?谢谢。 –'40.2 mi'不会导致'ArgumentOutOfRangeException',只有没有空白时才会发生。你不能将'40.2'解析为'int'('FormatException'),因为它有小数位。所以你需要把它解析成一个“double”然后四舍五入。我会编辑我的答案。 –