精華區beta java 關於我們 聯絡資訊
大家好我是剛初學java的新手,在寫程式時遇到點問題想請教大家提點 由鍵盤輸入一個英文字元,計算他在26個字母裡的順序 import java.util.Scanner; public class test { public static void main(String args[]) { Scanner scn=new Scanner(System.in); String str; char ch; str=scn.next(); ch=str.charAt(0); } } 如何不用迴圈也能寫出來,因為還沒看到迴圈那裡 再來請大家幫我提示順序該怎麼設??謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.224.103 ※ 編輯: blak 來自: 114.25.224.103 (10/17 09:19)
superlubu:提示 ASCII 碼 10/17 09:59
AtarashiAko:不想用迴圈啊,那麼就用26個if吧....(逃 10/17 10:16
LaPass:樓上 XDDDD 10/17 10:20
qrtt1:哈。也可以用一個比較大的陣列塞 map['a']=1 10/17 11:07
LaPass:用string放abcdefg.... 然後再用indexof去找也可以 10/17 11:16
AtarashiAko:不過放在string要比較的話就不是比ascii code了 10/17 11:24
blak:知道ASCII後下一步還是想不通,能麻煩寫一行給我參考嗎?? 10/17 12:50
LaPass:我記得a-z A-Z 之間是照順序的,你只要減掉某數就是答案了 10/17 12:53
LaPass:例如 A=65 B=66 那你把取得的數字,減去64,得到的就是順序 10/17 12:57
hsiehfat:if正夯 10/17 13:02
OrzOGC:if you cry, 我會明白 10/17 13:11
JazzChen:被笑了QAQ,這個我會吧..用indexOf也是不錯,不過要先輸 10/17 15:09
JazzChen:入a~z的字串....有點長... 10/17 15:13
JazzChen:摁,剛細看發現跟LaPass提供的方法一樣.XD 10/17 15:16
AtarashiAko:因為這種題目最直覺的想法就是用ASCII code啊 10/17 15:55
superlubu:LaPass 正解, 但其實 x - 'a' + 1 已經可以得到答案 XD 10/17 16:19
superlubu:x <-- 想求的字母 10/17 16:21
blak:LaPass,我得到答案了,不過我想問a為什麼是第33字母 10/17 18:42
blak:superlubu,我程式碼 10/17 18:46
blak:System.out.print(ch+"為第"+(ch-'a'+1)+"字母");輸入A是-31 10/17 18:48
AtarashiAko:因為ascii code是這樣排序的,至於為什麼是33不是1 10/17 19:45
AtarashiAko:就要問當時的制定者了 10/17 19:46
superlubu:Aa的ASCII碼是不同的,請參考Character的method找解決 10/17 20:27