gpt4 book ai didi

c# - 如何检查字符串是否遵循美国货币的模式?

转载 作者:太空宇宙 更新时间:2023-11-03 20:51:53 25 4
gpt4 key购买 nike

我正在解决一个问题,它希望我从用户那里获取一个字符串输入,通过一种方法运行它,该方法将检查每个字符以查看它是否遵循美国货币的模式。它必须是进入方法的字符串。金额可以是1美元到1000之间的任意金额,但必须输入格式为$x.xx、$xx.xx、$xxx.xx,只要用户输入的金额与上述格式一致即可我的程序应该输出它的“有效”任何其他内容都是“无效格式”输出。第一个字符必须是“$”,我不能使用正则表达式。

我获取用户输入,然后使用 .NullOrWhiteSpace 对其进行验证。然后将保存用户输入的字符串值发送到我创建的方法。从这一点上我不知道如何继续。我试过 .ToCharArray,我也试过制作一个冗长而复杂的 if 语句,我已经研究了几个小时,但找不到可靠的方法来写出来。

 class Program
{
static void Main(string[] args)
{
Console.WriteLine("enter amount between $1.00 and $1000.00");
string valueUS = Console.ReadLine();
while (string.IsNullOrWhiteSpace(valueUS))
{
Console.WriteLine("Please enter in an amount");
valueUS = Console.ReadLine();
}

currencyChecker(valueUS);

}

public static string currencyChecker(string currencyString)
{

char[] currencyArray;
currencyArray = currencyString.ToCharArray();
for (int i = 0; i < currencyArray.Length; i++)
{

if (currencyArray[0] == '$')
{

}

}
return currencyString;

下面的方法应该检查用户输入的每个字符并验证它是否匹配上面描述的美国货币模式并输出它的“有效”任何其他应该报告为“无效”

最佳答案

通常,您会为这样的事情使用正则表达式。一个简单的正则表达式是 ^\$\d+.\d\d$。基本上,这意味着字符串应以 $ 符号开头,最后有一个数字、一个点和另外两个数字。

但是,这可以在没有正则表达式的情况下完成,并且由于这看起来像是一项家庭作业任务,所以我会在正确的方向上给您一点提示。

因此需要测试以$开头的字符串,右数第3个字符是.,其他都是数字。

你的方法应该返回一个 bool 指示有效/无效的结果 - 所以你应该这样做:

 static bool IsCurrency(string currency)
{

// Check if the string is not null or empty - if not, return false

// check if the string is at least 5 chars long, since you need at least $x.xx - if not, return false

// Check if the first char is $ - if not, return false

// Check if the 3rd char from the end is . - if not, return false

// check if all the other chars are digits - if not, return false


// If all checks are valid -
return true;
}

请注意,测试的顺序很重要,例如,如果您检查右起第 3 位数字是否为 在检查至少有 5 位数字之前,您可能会尝试检查 a只有 2 位数字长的字符串并得到异常。

由于这(可能)是家庭作业,我将把代码编写部分留给您,这样您实际上可以从中学到一些东西。

关于c# - 如何检查字符串是否遵循美国货币的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54387574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com