2016-10-12 18 views
-3

私にはわからない問題があります。私のコードは以下の通りです:文字列[0]文字列の先頭文字を取得

String input = "3 days ago" 
String firstCharacter = input[0].ToString(); //Returns 3 
int firstCharacter = (int)input[0]; //Returns 51 

なぜ51に戻るのですか?

PS:私のコードは、このスレッドから来ている:C#: how to get first char of a string?

詳細情報:この方法でintcharキャスティング

In case that input = "5 days ago", then int firstCharacter is 53. 
+6

'3'は' 51'コードの文字です。 charをintにキャストします。 http://www.asciitable.com/ –

+0

を確認してください。達成しようとしていることは何ですか?これは.NETでの通常の動作です。 charをintにキャストし、intをcharにキャストできます。 – Alex

+0

おそらく 'int.TryParse'はあなたが探しているものですか? –

答えて

4

はあなたに3のために等しく、そのASCII値が得られます51.完全なリストはここにあります:

http://www.ascii-code.com/

あなたはこの代わりのような何かをしたい:

Char.GetNumericValue(input[0]); 
1

あなたはまた、代わりに文字の文字列として抽出するためにサブを使用し、それをキャストする手間を省くことができますので、

 string input = "3 days ago"; 
     string sFirstCharacter = input.Substring(0, 1); 
     int nFirstCharacter = int.Parse(input.Substring(0, 1)); 
関連する問題