如何使用 C# 交换四位数字的数字?
How to swap numbers of four digits numbers using c#?
我想交换输入用户的四位数字。我写了代码
private void btnSwap_Click(object sender, EventArgs e)
{
int number, digit1, digit2, digit3, digit4;
number = Convert.ToInt32(txtNumber.Text);
digit1 = number % 10;
digit2 = (number / 10) % 10;
digit3 = (number / 100) % 10;
digit4 = (number / 1000) % 10;
digit4 = digit1;
digit1 = digit3;
digit3 = digit2;
digit2 = digit1;
lbReserved.Text = number.ToString();
}
但是编码 return 相同的号码?怎么做到的?
您可以递归地交换字符串的字符。
示例如下。
private void btnSwap_Click(object sender, EventArgs e)
{
string number = txtNumber.Text;
lbReserved.Text = reverseString(number);
}
private string reverseString(string str)
{
string result = "";
if (str.length() == 1)
{
result = str;
}
else
{
result += str.charAt(str.length() - 1) + reverseString(str.substring(0, str.length() - 1));
}
return result;
}
由于你的数学,它们已经被颠倒了,不需要交换变量。因此,如果需要,您只需要创建一个新的 int 即可:
int reversedNumber = int.Parse(string.Concat(digit1, digit2, digit3, digit4));
如果你想要一个没有数学的更简洁的版本:
int reversedNumber = int.Parse(string.Concat(txtNumber.Text.TrimStart('0').Reverse()));
我想交换输入用户的四位数字。我写了代码
private void btnSwap_Click(object sender, EventArgs e)
{
int number, digit1, digit2, digit3, digit4;
number = Convert.ToInt32(txtNumber.Text);
digit1 = number % 10;
digit2 = (number / 10) % 10;
digit3 = (number / 100) % 10;
digit4 = (number / 1000) % 10;
digit4 = digit1;
digit1 = digit3;
digit3 = digit2;
digit2 = digit1;
lbReserved.Text = number.ToString();
}
但是编码 return 相同的号码?怎么做到的?
您可以递归地交换字符串的字符。
示例如下。
private void btnSwap_Click(object sender, EventArgs e)
{
string number = txtNumber.Text;
lbReserved.Text = reverseString(number);
}
private string reverseString(string str)
{
string result = "";
if (str.length() == 1)
{
result = str;
}
else
{
result += str.charAt(str.length() - 1) + reverseString(str.substring(0, str.length() - 1));
}
return result;
}
由于你的数学,它们已经被颠倒了,不需要交换变量。因此,如果需要,您只需要创建一个新的 int 即可:
int reversedNumber = int.Parse(string.Concat(digit1, digit2, digit3, digit4));
如果你想要一个没有数学的更简洁的版本:
int reversedNumber = int.Parse(string.Concat(txtNumber.Text.TrimStart('0').Reverse()));