2014-09-22 27 views
1

我是java編程(和一般編程)的新手,並想知道是否有更簡單的方式來說明這一點。基本上,我只是想把數字分配給字母。這是我知道如何做到這一點的唯一方法,但我確信在java中執行此操作有更簡單的方法。感謝社區給我的任何幫助。更容易的方法來指定數字到字母

注:codeLetter是一個char,餘數是一個int。

if (remainder <= 0) 
{ 
    codeLetter = 'A'; 
} 
else if (remainder <= 1) 
{ 
    codeLetter = 'B'; 
} 
else if (remainder <= 2) 
{ 
    codeLetter = 'C'; 
} 
else if (remainder <= 3) 
{ 
    codeLetter = 'D'; 
} 
else if (remainder <= 4) 
{ 
    codeLetter = 'E'; 
} 

等等

+7

提示:如果這些數字是數組的索引會怎麼樣? – m0skit0 2014-09-22 20:10:43

回答

10

如果餘數是小於或等於26,你可以使用 -

codeLetter = (char) ('A' + remainder); 
+2

這真的很聰明。 – DejaVuSansMono 2014-09-22 20:13:15

3

嘗試使用switch。或者如果您不需要自己分配數值,則使用Character.getNumericValue()

或參見this post這可能是最合適的:利用字符的ASCII表示。

+1

+1爲新用戶可以理解的可讀解決方案。其他的解決方案(包括投射和添加字符到整數)對於初學者來說非常神祕。 – gnomed 2014-09-22 20:14:19

1
if(remainder <= 0) 
    codeLetter = 'A'; 
else 
    codeLetter = 'A' + remainder; 

這涵蓋了remainder爲負值的情況。

4

如果字母賦值是按字母順序排列的,那麼可以依賴UNICODE代碼指向拉丁字母的事實按字母順序排列。如果您需要定義任意的分配,你可以使用一個String作爲「鑰匙」:將要在一個字符串編碼的字母,由remainder命令他們,並用charAt提取相應的字母:

// Let's say you want to re-order your letters in some special way 
String key = "QWERTYUIOPASDFGHJKLZXCVBNM"; 

// Now you can obtain the letter like this: 
char letter = key.charAt(remainder); 
相關問題