我有一个字符串变量。我想交换字符串中的两个字符。 我想随机交换两个彼此接近的字符。
这就是我所做的: 我这样做了,但有些人说我得错了。
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
}
答案 0 :(得分:3)
使用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]);
}
}
答案 1 :(得分:1)
只需更改以下行:
int randomNumber= rand.Next(0, word.Length -1 );
让我们看看它是否有效。
答案 2 :(得分:0)
试试这个。如果单词为空,还要添加检查。
int randomNumber= rand.Next(0, word.Length - 1);
答案 3 :(得分:0)
试试这段代码。最容易更改代码
int randomNumber= rand.Next(0, word.Length-2);