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