2017-02-02 7 views
0

私はアルファベットの次の文字で奇数の位置に入力文字列の文字を置き換える必要があります。例実行する文字列の奇数の位置で選択

については

入力からABCD

出力からBBDD

は、私はあなたが、ほとんどがある達成するためにもう少しを行う必要があり、この

string input = Console.ReadLine(); 
char[] k = input.ToCharArray().Select((val,i) =>(i%2==0) && (char)((int)val +  1)).ToArray(); 
string output=new string(k) 
+1

入力が '' zBZD "'の場合はどうなりますか? –

+0

コード例を実行してデバッグしようとしましたか? –

答えて

2

のようなものを望んでいましたターゲット。次の事柄に注意し、それらの変更を行う必要があります。

  • 条件i%2==0が文字を交換したりないする必要があるので、あなたはここで条件演算子(?:)を適用する必要があるかどうかを決定します。
  • 有効な条件の場合、次の文字を取得する必要があります。そのためには(char)((int)x + 1)を試すことができます。これは最初に(int)xを評価し、その特定の文字の整数値を与えます。 1を追加して、対応する文字を取得します。
  • false条件の場合、同じ文字を使用します。

    string input = "ABCD"; 
    char[] k = input.Select((x, i) => i % 2 == 0 ? (char)((int)x + 1) : x).ToArray(); 
    string output = String.Join("",k); 
    

    Working Example

    :あなたは文字の配列を取得しますこれらのステップの後
  • 、あなたは

あなたはこのような何かを試すことができ、文字列からの出力文字列を作るためにString.Joinを使用することができます

次の事項にも注意してください。

  • このコードでは、入力にZが含まれていて、ASCIIテーブルの次の値が割り当てられる場合は、[に制限されています。
  • zaZAの場合は、その条件を適用する必要があります。
0
string output = string.Concat(input.Select((c, i) => (char)(c + ++i % 2))); 
+0

説明が役立つかもしれません。 – Pavlo