2016-10-02 14 views
-2

入力ワード:オーバーフロー 出力:入力ワードの位置を入れ替えるプログラムを作成しようとしています 出力: vorelfwos 3番目と4番目の文字を1番目と2番目の文字に置き換えたいと思います。最後にスワッピングの相手がない文字がある場合はそのままそのまま残したいと思います。誰かが私を助けることができますか?私はc#btwを使用します。入力文字列内の単語の文字の位置を変更する方法

+4

音が宿題のようです。何を試しましたか?どこに詰まっているのですか。 –

+3

[ask]を読んでください。問題を紹介してください。*あなたが試したことを*表示し、あなたがどこにいるのか説明してください。これは現在、「私の仕事は私のために」としか読まれていません。 –

+0

私は文字通り何も思い付くことができません、私はちょうど単語の第1、第2または第3の文字を識別することが可能であることがわかりません。 – Kirito

答えて

0

C#の文字列はSystem.String.Charsと呼ばれるindexerを、持っている:

char letter = "Hello World"[0]; 

letterは今Hです。 、だから私はSystem.Text.StringBuilderを使用することをお勧めし

string myString = "Hello"; 

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

ので、ここでそれを使用して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

関連する問題