2016-10-02 81 views
-2

我试图做一个程序,其中我想交换/改变输入字的位置: 例如: 输入字:溢出 输出: vorelfwos 我想换出的第1和第2个字母的第三,第四等,如果它在具有用于交换没有伴侣结束了一封信,我只想保留原样。有人能帮助我吗?我将使用c#btw。如何更改字母的位置在一个字的输入字符串

+4

听起来像功课..你尝试过什么?你在哪里卡住 –

+3

阅读[问]。介绍这个问题,*展示你所尝试过的*,并解释你卡在哪里。目前这只是“为我做我的工作”。 –

+0

我从字面上不能拿出任何东西,我只是不知道如何才能识别单词中的第一,第二或第三个字母。 – Kirito

回答

0

C#字符串有一个indexer,叫System.String.Chars

char letter = "Hello World"[0]; 

letter现在H

,但字符串是不变的,所以你不能改变这样一个角色:

string myString = "Hello"; 

myString[1] = 'R'; // Produces an error. 

所以我建议使用System.Text.StringBuilder,所以这里是一个extension method使用它:

public static string Swap(this string str, int charToSwapA, int charToSwapB) 
{ 
    System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(str); 
    oldCharToSwapA = stringBuilder[charToSwapA]; 
    stringBuilder[charToSwapA] = stringBuilder[charToSwapB]; 
    stringBuilder[charToSwapB] = stringBuilder[oldCharToSwapA]; 
    return stringBuilder.ToString(); 
} 

可以这样使用:

string myString = "dello WorlH".Swap(0, 10); 

myString现在是"Hello World"

+0

非常感谢你! – Kirito

相关问题