我有這樣在C#的字符串:加入48至串數
string only_number;
我分配它的值= 40
當我檢查only_number[0]
,我得到52
當我檢查only_number[1]
,我得到48
爲什麼它將48添加到當前位置的字符?請建議
我有這樣在C#的字符串:加入48至串數
string only_number;
我分配它的值= 40
當我檢查only_number[0]
,我得到52
當我檢查only_number[1]
,我得到48
爲什麼它將48添加到當前位置的字符?請建議
字符串基本上是char[]
。所以你看到的是字符4的ASCII值和0
證明:4和0 = DIFF之間DIFF 52和48
之間。因爲它是一個字符串,所以你沒有指定它40.相反,你將它分配給"40"
。
儘管..b/w有什麼用? b/w之間爲 – Shai
。 –
你看到的是'4'和'0'的ASCII碼。
您正在訪問該字符串,它是輸出的ASCII字符代碼爲每個兩個字符的,「4」和「0」 - 請點擊這裏:
http://www.theasciicode.com.ar/ascii-control-characters/null-character-ascii-code-0.html
string
是的array
chars
,所以,這就是爲什麼你收到這些結果,它基本上顯示'4'和'0'的ASCII
。
投票答案而不是重複 – Deeptechtons
我沒有...... – Talha
它不會將48添加到角色中。你看到的是字符代碼,和用於數字的字符的Unicode在48開始:
'0' = 48
'1' = 49
'2' = 50
'3' = 51
'4' = 52
'5' = 53
'6' = 54
'7' = 55
'8' = 56
'9' = 57
字符串是char
值的範圍,並且每個char
值是一個16位整數,基本上表示代碼點Unicode字符集。
當您從only_number[0]
讀你得到一個char
值是'4'
,併爲字符代碼爲52.所以,你所做的是從字符串讀取字符,然後轉換,爲一個整數你面前顯示它。
所以:
char c = only_number[0];
Console.WriteLine(c); // displays 4
int n = (int)only_number[0]; // cast to integer
Console.WriteLine(n); // displays 52
int m = only_number[0]; // the cast is not needed, but the value is cast anyway
Console.WriteLine(m); // displays 52
你到底想幹什麼? – Paddy
「我給它賦了一個值='40'」 - 不,你給它賦值'「40」'。你看得到差別嗎?你瞭解差異嗎? – AakashM
@DotnetSparrow沒有編譯投訴將整數分配給字符串類型?在行中「**不能將源類型int轉換爲目標類型字符串**」 – Deeptechtons