C# 如何交换字符串变量中的两个字符?
我有一个字符串变量。我想交换字符串中的两个字符。 我想随机交换两个彼此接近的字符 这就是我所做的: 我曾经这样做过,但在某些方面我犯了错误C# 如何交换字符串变量中的两个字符?,c#,string,C#,String,我有一个字符串变量。我想交换字符串中的两个字符。 我想随机交换两个彼此接近的字符 这就是我所做的: 我曾经这样做过,但在某些方面我犯了错误 string word = txtWord.Text; Random rand = new Random(); int randomNumber= rand.Next(0, word.Length); string swappedWord = SwapCharacters(lastWord, randomNumber, randomNumber + 1);
string word = txtWord.Text;
Random rand = new Random();
int randomNumber= rand.Next(0, word.Length);
string swappedWord = SwapCharacters(lastWord, randomNumber, randomNumber + 1);
private string SwapCharacters(string value, int position1, int position2)
{
char[] array = value.ToCharArray(); // Convert a string to a char array
char temp = array[position1]; // Get temporary copy of character
array[position1] = array[position2]; // Assign element
array[position2] = temp; // Assign element
return new string(array); // Return string
}
试试这个。还添加检查单词是否为空
int randomNumber= rand.Next(0, word.Length - 1);
试试这个。还添加检查单词是否为空
int randomNumber= rand.Next(0, word.Length - 1);
只需按以下方式更改行:
int randomNumber= rand.Next(0, word.Length -1 );
让我们看看它是否有效。只需按如下方式更改行:
int randomNumber= rand.Next(0, word.Length -1 );
让我们看看它是否有效。使用StringBuilder:
//如果你想替换
StringBuilder sb = new StringBuilder(theString);
sb[index] = newChar;
theString = sb.ToString();
//交换
string input = "AXBYCZ"; //Sample String
StringBuilder output = new StringBuilder();
char[] characters = input.ToCharArray();
for (int i = 0; i < characters.Length; i++)
{
if (i % 2 == 0)
{
if((i+1) < characters.Length )
{
output.Append(characters[i + 1]);
}
output.Append(characters[i]);
}
}
string input=“AXBYCZ”//样本串
StringBuilder输出=新的StringBuilder();
char[]characters=input.ToCharArray();
for(int i=0;i
使用StringBuilder:
//如果你想替换
StringBuilder sb = new StringBuilder(theString);
sb[index] = newChar;
theString = sb.ToString();
//交换
string input = "AXBYCZ"; //Sample String
StringBuilder output = new StringBuilder();
char[] characters = input.ToCharArray();
for (int i = 0; i < characters.Length; i++)
{
if (i % 2 == 0)
{
if((i+1) < characters.Length )
{
output.Append(characters[i + 1]);
}
output.Append(characters[i]);
}
}
string input=“AXBYCZ”//样本串
StringBuilder输出=新的StringBuilder();
char[]characters=input.ToCharArray();
for(int i=0;i
试试这段代码。更改代码是最容易的
int randomNumber= rand.Next(0, word.Length-2);
试试这个代码。更改代码是最容易的
int randomNumber= rand.Next(0, word.Length-2);
尝试
rand.Next(0,单词长度-1)代码>你得到的错误是什么?@L.B不是高界非包容性的吗?@Mariostilov查看下一行randomNumber+1
@L.B啊,是的。没有看到那个。请尝试rand.Next(0,word.Length-1)代码>你得到的错误是什么?@L.B不是高界非包容性的吗?@Mariostilov查看下一行randomNumber+1
@L.B啊,是的。当我这么做的时候,我没有看到那个。我理解正确,但是如果单词只有1个字符,那么当我在swapcharates()方法中更改单词的位置时,我会出错。这是因为字符串中只有一个字符,并且在方法中也传递“randomNumber+1”。只需在其前面加上一个复选框,即sif(randomNumber