如果字符串包含整数,如何调整该字符串的文本框

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-catchParse()的更高级版本使用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);
} 

以上是关于如果字符串包含整数,如何调整该字符串的文本框的主要内容,如果未能解决你的问题,请参考以下文章

如何确保文本框只接受整数(而不是字符串)

如何修改此代码以处理包含字符和整数的输入文本?

java中如何根据字符串长度来调整文本框大小

VBA一例:如何保持文本框焦点

js验证文本框只能输入正整数或带一位小数的数,该怎么写呢?

C#中在文本框中输入的字符串怎么让它隐藏