我寫一個簡單的代碼,並需要獲得字符串中的每個數字作爲整數 但是當我嘗試使用Convert.ToInt32()它給我的另一個值將字符串轉換得到錯誤值
例如:
string x="4567";
Console.WriteLine(x[0]);
結果將是,但如果我嘗試使用轉換
Console.WriteLine(Convert.ToInt32(x[0]));
it給我 !!
我嘗試使用int.TryParse()和其相同的
我寫一個簡單的代碼,並需要獲得字符串中的每個數字作爲整數 但是當我嘗試使用Convert.ToInt32()它給我的另一個值將字符串轉換得到錯誤值
例如:
string x="4567";
Console.WriteLine(x[0]);
結果將是,但如果我嘗試使用轉換
Console.WriteLine(Convert.ToInt32(x[0]));
it給我 !!
我嘗試使用int.TryParse()和其相同的
根據該docs:
ToInt32(Char)方法返回一個32位有符號整數,表示值參數的UTF-16編碼的代碼單元。如果值不是低代理或高代理,則此返回值也代表Unicode代碼值的值。
爲了得到4,你必須轉換爲INT32之前將其轉換爲字符串:
Console.WriteLine(Convert.ToInt32(x[0].ToString()));
則還可以在字符串中做到這一點的方式,通過所有字符循環
foreach (char c in x)
{
Console.WriteLine(c);
}
會打印4,5,6,7
正如建議在較早前的答覆轉換成整數做,作爲一個刺痛年代以前o它不返回ascii碼
A char
在內部是short integer
它的ASCII
表示。
如果您將char(顯式或隱式)轉換爲int類型,您將得到它的Ascii值。示例Convert.ToInt32('4')
= 52
但是,當您將其打印到控制檯時,隱式使用它的ToString()方法,因此實際上正在打印ASCII
字符'4'。例如:Console.WriteLine(x [0])等同於Console。的WriteLine( 「4」)
嘗試使用ASCII
信,所以你會發現明確的區別:
Console.WriteLine((char)('a')); // a
Console.WriteLine((int)('a')); // 97
現在用char
數學玩:
Console.WriteLine((char)('a'+5)); // f
Console.WriteLine((int)('a'+5)); // 102
底線,只使用int digit = int.Parse(x[0]);
還是有趣的(但不太安全)的方式:int digit = x[0] - '0';
4的ascii值是52. http://www.theasciicode.com.ar/ascii-printable-characters/number-four-ascii-code-52.html –
http://stackoverflow.com/questions/ 3665757/how-to-convert-char-to-int –