2013-09-26 65 views
0

我想製作一個程序,您可以在其中輸入信用卡號碼,然後使用剩餘的26位數字加上一位數字,然後用ASCII字母/符號將數字回傳給您。我覺得我的代碼是正確的,但是當我運行程序時,沒有符號出現。我沒有得到調試錯誤或任何東西,但我的(char)符號不顯示。它顯示的是數字。有人能幫助我嗎?如何將用戶輸入的整數轉換爲java中的char ASCII值?

這是我到目前爲止有:

import java.util.*; 
import java.text.*; 
import java.math.*; 

public class Program{ 

public static void main (String []args){ 

Scanner keyboard = new Scanner(System.in); 

int CC, CC2, CC3, CC4; 


System.out.println("Enter your credit card number 2 numbers at a time (XX XX XX XX)"); 
CC=keyboard.nextInt(); 
CC2=keyboard.nextInt(); 
CC3=keyboard.nextInt(); 
CC4=keyboard.nextInt(); 

int CC6; 

CC6= (CC+CC4+CC2+CC3)%26; 

char CC7; 

CC7 = (char)CC6; 


System.out.println("The correct number and code is:" +CC+CC2+CC3+CC4+CC7);  

} 
} 
+0

您可以發佈預期的輸入/輸出嗎? –

+0

專業提示:如果您使用的是Eclipse,按Ctrl + Shift + F將很好地格式化您的代碼,按Ctrl + Shift + O將清理您的導入。考慮在發佈之前這樣做! – Meesh

回答

0

單獨打印它們,你可以看到一些奇怪的符號在控制檯到來。

System.out.println("The correct number and code is:" + CC + CC2 + CC3 + CC4); 
System.out.println(CC7); 

的事情是,你會得到CC7在0-25的範圍內唯一的,因爲你正在做一個國防部26這個範圍包含非字符鍵的ASCII碼。

實際字符(或者對於那種情況,特殊字符)從ASCII碼33開始。看看這裏的ASCII table

+0

謝謝。這工作! – user2817797

+0

很高興爲你效勞!:)不要忘記接受答案。 – SudoRahul

1

我相信你正在尋找

Character.toChars(CC6); 

確保當你正在測試中,我們使用的值,實際上映射到一個體面的價值。例如Character.toChars(65)產生'A'。

有關進一步的參考,請參閱:Converting stream of int's to char's in java

+0

當我試過它只是給了我的號碼,而不是字符? 'code' CC6 =((CC + CC4 + CC2 + CC3)%26)+65; Character.toChars(CC6); System.out.println(「正確的數字和代碼是:」+ CC + CC2 + CC3 + CC4); System.out.println(+ CC6); – user2817797

+0

'Character.toChars(int)'返回一個'char []'。你需要將它存儲在某個地方,或者直接在'println'中使用它。 – Meesh

0

有一個人物有它只是一個心不是與控制檯顯示效果出色。可能被渲染爲空白空間。我看到你正在使用26的剩餘部分,所以即時猜測你希望它是一個字母(a-z)。字母的ascii字符從65開始爲大寫字母,97爲小寫字母。

使這一變化

CC6= (CC+CC4+CC2+CC3)%26+65; 

,你會看到被打印出來,A和Z之間的字母。

您可以查看完整的ASCII表這裏http://www.asciitable.com/

相關問題