我想做一个小程序,让人们把他们的婚礼费用用空格隔开,然后把总数返回给他们。这是用C#winforms编写的。
代码:
string expenses = txEntrada.Text;
int add = 0;
string space = "";
for (int i = 0; i < expenses.Length; i++)
{
string substring = expenses.Substring(i, 1);
if (substring == space)
{
i++;
}
else
{
add += int.Parse(substring);
}
}
txSortida.Text = add.ToString();
5条答案
按热度按时间6mw9ycah1#
我的建议是这样的:
在这里我们
1.用空格
' '
分割输入并删除空条目,以便允许像" 123 456 "
输入那样的 * 前导 、 尾随 * 和 * 双 * 空格。1.我们对解析后的值求和(因为我们使用现金,所以
decimal
通常是最佳选择;如果您坚持使用int
,请使用int.TryParse
);如果值的格式错误,我们 * 忽略它 *(添加0m
),即"123 bla-bla-bla" 456 => 123 + 456 == 579
1.最后,我们将结果格式化为某种货币格式(我选择了
c2
)xmq68pz92#
这就是你所需要的:
7xzttuei3#
为了使这个方法更健壮,并且在用户输入额外的空格或非数字字符时不会崩溃,我建议对
int
使用TryParse方法。因此,首先您将使用Split
方法拆分字符串,使用RemoveEmptyEntries
选项。然后使用TryParse
方法遍历该数组,只有在解析成功时才添加值。pprl5pva4#
你可以使用
expenses.Split
将字符串转换为基于空格的数组,并且属性StringSplitOptions.RemoveEmptyEntries
删除数组中的Empty。然后使用Sum(x => Convert.ToInt32(x))
将数组求和为一个数字p4tfgftt5#
可以使用名称空间
System.Text.RegularExpressions
中的类Regex
将输入字符串拆分为标记(每个标记都是表达式中的一个项,作为字符串)。然后将每个标记转换为
int
并将它们相加。代码示例:
输出:
在计算
sum
后的实际代码中,可以使用: