如果字符串包含整数,如何调整该字符串的文本框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果字符串包含整数,如何调整该字符串的文本框相关的知识,希望对你有一定的参考价值。
我目前在文本框上检查错误时遇到了一些问题。它将变量(称为Price)保存为Double。其目的是取一个数字,当单击一个按钮时,它会将其添加到显示在不同文本框中的运行总计。
现在,我在使用以下方法检查文本框是否为空时出错:
!string.IsNullOrWhiteSpace(txtAddItem.Text)
但是,我不确定如何错误检查是否输入了数字以外的字符串或字符。任何想法都表示赞赏。
答案
方法1:RegEx
您应该尝试使用正则表达式。正则表达式(简称Regex)用于匹配字符串与模式。例如,如果您只想允许整数:
Regex r = new Regex(@"^[0-9]+$")
Regex
类有一个.IsMatch(string s)
方法,其中s
是你要针对模式测试的字符串。
方法2:try-catch和Parse()
另一种方法,可能是一个更初学者友好,是一个try-catch块。 (我假设您的TextBox名称是TextBox1,并将sum值存储在正在运行的Sum变量中。)
try {
double x = double.Parse(TextBox1.Text);
runningSum += x;
catch (ArgumentException ax) {
//handle if it is not a number in the TextBox
}
方法3:TryParse()
结合try-catch
和Parse()
的更高级版本使用double.TryParse()
方法,该方法根据转换是否成功返回真/假值。
double x;
if (double.TryParse(TextBox1.Text, out x)) {
runningSum += x;
} else {
//handle if it is not a number in the TextBox.
}
另一答案
如果值必须是有效的double
,则可以使用'double.TryParse'。就像是:
if (double.TryParse(txtAddItem.Text, out double price) == false)
{
// Show error or clear textbox
}
else
{
// Value is valid, add to total
}
另一答案
你可以使用Double.TryParse()
double number;
if (Double.TryParse(txtAddItem.Text, out number)) {
Console.WriteLine("'{0}' is a valid double: {1}", value, number);
} else {
Console.WriteLine("Unable to parse '{0}' as a valid double", value);
}
以上是关于如果字符串包含整数,如何调整该字符串的文本框的主要内容,如果未能解决你的问题,请参考以下文章