2016-05-04 25 views
0

私のchar[]はどちらもちょうど1つの要素で構成されています。私の仕事は、最初の配列の要素の長さと2番目の配列の要素の長さを比較することです。文字配列を文字列に変換して長さを比較しようとしています

using System; 
using System.Linq; 

namespace FirstLecture 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      char[] ints = {char.Parse(Console.ReadLine())}; 

      char[] ints2 = {char.Parse(Console.ReadLine())}; 

      string s1 = new string(ints); 
      string s2 = new string(ints2); 

      if (s1.Length > s2.Length) 
      { 
       Console.WriteLine(">"); 
      } 
      else if (s1.Length < s2.Length) 
      { 
       Console.WriteLine("<"); 
      } 
      else { 
       Console.WriteLine("="); 
      } 
     } 
    } 
} 

コンソールでプログラムを実行すると、String must be exactly one character longと表示されます。私は、データ型変換エラーのいくつかの並べ替えがあると仮定している、それを指摘することはできません。これは本当ですか?

+0

'char'タイプはexactlly 1 simbolでなければなりません。 char.Parse(Console.ReadLine())は1つ以上を返します(つまり、ユーザーは '12'を入力します)。 –

答えて

2

char.Parseは、Console.ReadLineから読み込んだ文字列全体ではなく、1つの文字のみを解析します(コンソールに「A」と入力すれば動作します)。

代わりに、あなただけの文字配列に文字列を割り当てることができます:それはあなたのため、しかし文字は再びそれから文字列を作成割り当てた後すぐに役に立たないようだ

char[] ints = Console.ReadLine().ToArray(); 

。入力と結果の両方の文字列は同じにする必要があります。

これは大丈夫でなければなりません:

string s1 = Console.ReadLine(); 
関連する問題