如何在java中将用户输入整数转换为char ASCII值?

时间:2013-09-26 03:34:03

标签: java casting ascii

我正在尝试创建一个程序,您可以在其中输入一个信用卡号码,它将使用剩余的数字除以26,用最后的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);    

}
}

3 个答案:

答案 0 :(得分:1)

我相信你正在寻找

Character.toChars(CC6);

确保在测试时,您使用的值实际上映射到了正常的值。例如,Character.toChars(65)会生成“A”。

有关详细信息,请参阅:Converting stream of int's to char's in java

答案 1 :(得分:0)

那里有一个角色,它只是一个与控制台不能很好地显示的角色。可能被渲染为空白区域。我看到你正在使用26的剩余部分所以我猜你想要它是一个字母(a-z)。对于大写字母,字母的ascii字符从65开始,对于小写字母从97开始。

进行此更改

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

你会看到A和Z之间的字母被打印出来。

您可以在此处查看完整的ASCII表http://www.asciitable.com/

答案 2 :(得分:0)

单独打印它们,您可以在控制台中看到一些奇怪的符号。

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

问题是,只有你在做 mod 26 并且这个范围包含非字符键的ASCII码时,你才会得到0到25​​范围内的CC7。

实际字符(或者就此而言,特殊字符)从ASCII代码33开始。在这里查看ASCII table