2016-10-12 140 views
-3

我遇到了一個我不明白的問題。這裏是我的代碼:string [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?

的更多信息:

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

鑄造一個charint這樣會給你的ASCII值3等於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)); 
相關問題