使用c#设置自己的字符串格式

本文关键字:字符串 格式 自己的 设置 使用 | 更新日期: 2023-09-27 18:20:47

我目前正在为我们公司的股票开发一个应用程序。在这个应用程序中,我必须创建一个格式检查按钮。因此,如果文本框中的文本格式不正确,它应该会抛出一个错误。

我想过使用String.Format()方法,但我认为我做错了,我不知道使用这种方法是否可行。我尝试了以下方法:

string format = String.Format("XXX.XX.XX.XX.X", txtStockFormat.Text);
if (format != txtStockFormat.Text)
{
    MessageBox.Show("if");
}
else
{
    MessageBox.Show("else");
}

我不知道String.Format()是否是实现我想要的东西的正确方式,我想我不太理解它。我已经在这个网站上搜索过了,我看到有很多给定的格式,但我找不到设置自己格式的方法。

有人能告诉我怎样才能做到这一点吗?

建议:)

使用c#设置自己的字符串格式

正如对您的问题的评论所说,您必须使用Regex。大约一个月前,我也遇到过类似的问题,我花了一段时间才理解Regex是如何工作的。

我想你正在寻找这样的东西:

string pattern = @"[a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]'.[a-zA-Z0-9][a-zA-Z0-9]'.[a-zA-Z0-9][a-zA-Z0-9]'.[a-zA-Z0-9][a-zA-Z0-9]'.[a-zA-Z0-9]";
Match match = Regex.Match(txtStockFormat.Text, pattern);
if (match.Success)
{
    // Do your stuff
}
else
{
    // Do your stuff
}

在您的问题中,您想要XXX.XX.XX.XX.X格式。让我们来看看前三个字母。在我的代码示例中,前三个字母可以是"a-z"、"a-z"answers"0-9"之间的数字。如果前三个字符只需要大写字母,则必须将模式更改为[A-Z]

string pattern = @"[a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]'.[a-zA-Z0-9][a-zA-Z0-9]'.[a-zA-Z0-9][a-zA-Z0-9]'.[a-zA-Z0-9][a-zA-Z0-9]'.[a-zA-Z0-9]";
                        ^           ^         ^      ^
                        |           |         |      |
                    1st char   2nd char   3rd char  Point (separator)      etc.

你可以用你想要的模式替换我上面写的模式。我为你在问题中发布的示例定义了模式。

更新:

正如@Rawling在评论中所说,为了让它更清晰、更简单,这将产生同样的效果:

string pattern = @"[a-zA-Z0-9]{3}'.[a-zA-Z0-9]{2}'.[a-zA-Z0-9]{2}'.[a-zA-Z0-9]{2}'.[a-zA-Z0-9]";

您的问题不清楚,因为您要求设置字符串格式,但在代码中,您试图将文本与该格式进行比较。无论如何,如果您想将字符串更改为自己想要的格式,您可以简单地使用ToString方法,如_yourString.ToString(_yourFormat).