2016-11-07 5 views
0

手作りのコードを使用すると、ユーザーの入力を別のもの(入力した文字の直後の文字)にエンコードすることが考えられます。私がそれを実行しようとするたびに、戻り値はユーザーの文だけです。私はそれがデコーダのために働くのはうれしいですが、エンコーダはメッセージをエンコードする必要があります。なぜそれが動作していないのだろうかと思います。エンコーダーからデコードストリングへ

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace EncoderDecoder 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      Console.WriteLine("Please enter a sentence. No numbers, smybols, or punctuations."); 
      string sentence = Console.ReadLine(); 
      Console.WriteLine(); 


      Console.WriteLine("Your encoded message."); 
      string encodedSentence = Encode(sentence); 
      Console.WriteLine(encodedSentence); 

      Console.WriteLine("Your decoded message. Also known as your original message."); 
      string decodedSentence = Decode(sentence); 
      Console.WriteLine(decodedSentence); 

      Console.ReadLine(); 
     } 

     private static string Decode(string encodedSentence) 
     { 
      char[] wordArray; 
      string[] words = encodedSentence.Split(' '); 
      for (int i = 0; i > words.Length; i++) 
      { 
       wordArray = words[i].ToArray(); 
       if (wordArray.Length > 1) 
       { 
        char beginLetter = wordArray[0]; 
        wordArray[0] = wordArray[wordArray.Length + 1]; 
        wordArray[wordArray.Length + 1] = beginLetter; 
       } 
       for (int t = 0; t < wordArray.Length; t++) 
       { 
        wordArray[t] = (char)(wordArray[t] + 1); 
       } 
       words[i] = new string(wordArray); 
      } 
      string decoded = string.Join(" ", words); 
      return decoded; 
     } 

     private static string Encode(string sentence) 
     { 
      char[] wordArray; 
      string[] words = sentence.Split(' '); 
      for (int i = 0; i > words.Length; i++) 
      { 
       wordArray = words[i].ToArray(); 
       if (wordArray.Length > 1) 
       { 
        char beginLetter = wordArray[0]; 
        wordArray[0] = wordArray[wordArray.Length - 1]; 
        wordArray[wordArray.Length - 1] = beginLetter; 
       } 
       for(int t = 0; t > wordArray.Length; t++) 
       { 
        wordArray[t] = (char)(wordArray[t] + 1); 
       } 
       words[i] = new string(wordArray); 
      } 
      string encoded = string.Join(" ", words); 
      return encoded; 
     } 

    } 
} 

配列を使用して、文字列を配列に分割し、その配列を使用して文字を個別に変更します。それは働いていないいくつかの理由...

答えて

0

あなたは、T>ワードArray.lengthとを持っているループのためのあなたの中のエンコーダには、これはのための

+0

私はちょうどそれを修正し、それを変更しませんでした。私はまだユーザーの入力と同じメッセージを持って –

1

どちらが間違っているよりも小さくなければならない、試してみてください。for (int i = 0; i < words.Length; i++)

+0

ああ。それはそれを修正した。私はこのコードのために記号が混ざっているようです。ありがとうございました。 –

+0

@TommyVidrioあなたのお手伝いがあれば彼の答えを受け入れてください! – mybirthname

関連する問題