我有一个代码捕获文本框中的ODD EVEN数字,有没有更好的方法在最小的代码中执行此操作?或者可能更快的表现? thnks -john:)
string givenamnt = Convert.ToString(txtamount.Amount.Replace(".", ""));
int glength = givenamnt.Length;
var regex = new Regex("[1]|[3]|[5]|[7]|[9]");
string odd = null;
string even = null;
for (int i = 0; i < glength; i++)
{
var x1 = givenamnt.Substring(i, 1);
var isOdd = regex.IsMatch(x1);
if (isOdd)
{
odd += x1;
txtodd1.Text = odd;
}
else
{
even += x1;
txteven1.Text = even;
}
}
答案 0 :(得分:4)
是的。您可以使用Modulus
if( Convert.ToInt32(x1) % 2 == 0 ) //even
else // odd
答案 1 :(得分:0)
绝对不是一个优雅的解决方案,但要获得实际的偶数和奇数数字,你可以使用它:
string str = "230sd85"; // sample string with invalid input for numbers
var odd = str
.Where(x => char.IsDigit(x)
&& Convert.ToInt32(x) % 2 != 0);
var even = str
.Where(x => char.IsDigit(x)
&& Convert.ToInt32(x) % 2 == 0);
string oddNums = string.Join("", odd); // 35 - the numbers 3 and 5, not 35
string evenNums = string.Join("", even); // 208 - the numbers 2, 0 and 8
这是数字的意思吗?