2017-01-25 4 views
0

このコードブロックに問題があります。私がやろうとしている何文字列をユニコードに変換するために使用するもの

 Console.WriteLine("What is your name?"); 
     string PlayerName = Convert.ToInt32(Console.ReadLine()); 
     Console.WriteLine(PlayerName); 

は名前あなたの入力を読み取るためにコンピュータを取得し、それがあなたの名前である場合を尋ねています。私の名前を入力した直後に例外があります。 Convert.ToInt32は、私が使用するはずのものではありません、私は私の質問は、私が代わりにそれを置くことだと思います。

私はプログラミングに慣れていないし、ユニコードと呼ばれるかどうかもわからない。ごめんなさい。

+0

ユニコード文字列がバイト単位で表される方法を知りたいですか? – Markeli

答えて

2

Console.ReadLine()は、文字列、任意の変換を実行する必要はありません戻ります:

Console.WriteLine("What is your name?"); 
    string PlayerName = Console.ReadLine(); 
    Console.WriteLine(PlayerName); 
+0

ああ、ありがとうございます。ありがとうございました。 – NotaXHammer

1

Convert.ToInt32(String)を「等価な32ビット符号付き整数に番号の指定された文字列表現に変換」。コンソールに整数値を入力していないため、エラーが発生しています。

あなたPlayerName変数の型stringのものであり、Console.ReadLine()の戻り値は、すでにstringあるので、あなたは、任意の変換を必要としません。

0

あなたがUnicode文字を扱っている場合、あなたはその中に有効な整数値を渡さない場合は、エラーをキャストするので

Console.InputEncoding = Encoding.Unicode; 
Console.OutputEncoding = Encoding.Unicode; 

Console.WriteLine("What is your name?"); 
string PlayerName = Console.ReadLine(); 
Console.WriteLine(PlayerName); 
2

Convert.ToInt32()投げのような適切なエンコーディングを設定する必要があります。だから、あなたは正常にそれをチェックし、intergerの値を取得する必要があります。そのためにはInt32.TryParse(input, out val)になり、整数値が得られます。

例:あなたが唯一の整数値を印刷したい場合は

int value; 
if(Int32.TryParse(your_input, out value)) 
{ 
// if pass condition, then your input is integer and can use accordingly 
} 

だから、あなたのプログラムは次のようになります。

Console.WriteLine("What is your name?"); 
    var value = Console.ReadLine(); 
    int intVal; 
    if(Int32.TryParse(value, out intVal)) 
    { 
     Console.WriteLine(intVal); 
    } 

あなただけがReadLineメソッドから持っているものに印刷したい場合メソッドを使用すると、次のようになります。

Console.WriteLine("What is your name?"); 
    Console.WriteLine(Console.ReadLine()); 
関連する問題