[問題] 關於charAt的用法

看板java作者 (傑佛里95099)時間6年前 (2018/12/23 17:37), 6年前編輯推噓2(206)
留言8則, 3人參與, 6年前最新討論串1/1
安安 小弟我Java新手 最近在練習的時候 發現 如果用整數型態來儲存charAt函數 如果charAt裡面是數字的話 就會多48 像是 String a = "12345"; int b = a.charAt(0); 這樣子輸出會是49 如果改成 String a = "12345"; char b = a.charAt(0); 輸出就會變成1 想請問版上的各位高手 為什麼會這樣子呢 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.91.127 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1545557866.A.9DE.html

12/23 18:12, 6年前 , 1F
不只是Java的問題,這是電腦文字處理的基本知識
12/23 18:12, 1F

12/23 18:14, 6年前 , 2F
String、Character對電腦來說都是用一個數字對應,叫做編碼
12/23 18:14, 2F

12/23 18:16, 6年前 , 3F
'1'不管是int還是char實際上記憶體裡的值都是49,只是你的
12/23 18:16, 3F

12/23 18:16, 6年前 , 4F
輸出方法裡面看到型態是char、是String,會用對應的方法去
12/23 18:16, 4F

12/23 18:17, 6年前 , 5F
解析成字元輸出,而不是單純輸出數值
12/23 18:17, 5F

12/23 18:21, 6年前 , 6F
修正一下第二句→ ...都是每個字元用一個數字對應
12/23 18:21, 6F

12/23 18:26, 6年前 , 7F
charAt 其實就是在問「第 N 個字的編碼是多少」
12/23 18:26, 7F
了解 感謝各位 ※ 編輯: jeffery95099 (1.168.91.127), 12/23/2018 18:56:57

12/24 13:49, 6年前 , 8F
可以看 ASCII 編碼
12/24 13:49, 8F
文章代碼(AID): #1S7rTgdU (java)
文章代碼(AID): #1S7rTgdU (java)