我正在做一个信用卡验证程序(如果您不熟悉该方法 http://9gag.com/gag/70886/cracking-the-credit-card-code ),这里是它的链接)。 问题是:当尝试在代码中执行“int multi”操作时,int 不会导入 charAt 操作处理的信用卡的实际值。我该如何解决这个问题,我做错了什么?另外 char 不允许数学运算,是吗?
import java.io.PrintStream;
import java.util.Scanner;
public class CreditCardCheck {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
PrintStream ps = System.out;
int multi;
System.out.println("Enter CreditCard number: ");
String ccn = sc.nextLine();
if(ccn.length() < 16 || ccn.length() > 16 ){
System.out.println("ccn is larger or less than 16-digits");//checking for 16-digit
}else if(ccn.length() == 16){
System.out.println("Validating CreditCard ");
//multiplied numbers
char zero = ccn.charAt(0);
char second = ccn.charAt(2);
char fourth = ccn.charAt(4);
char sixth = ccn.charAt(6);
char eight = ccn.charAt(8);
char ten= ccn.charAt(10);
char twelve = ccn.charAt(12);
char fourteen = ccn.charAt(14);
// added numbers
char first = ccn.charAt(1);
char third = ccn.charAt(3);
char fifth= ccn.charAt(5);
char seventh = ccn.charAt(7);
char nineth = ccn.charAt(9);
char eleven = ccn.charAt(11);
char thirteen = ccn.charAt(13);
char fifteen = ccn.charAt(15);
//multiplication and addition
multi = ((zero*2)+ first) + ((second*2)+third)
+ ((fourth*2)+ fifth) + ((sixth*2)+seventh) + ((eight*2)+nineth)
+ ((ten*2)+eleven) + ((twelve*2)+thirteen) + ((fourteen*2)+fifteen);
System.out.println(multi);
}
}
}
最佳答案
import java.io.PrintStream;
import java.util.Scanner;
public class CreditCardCheck {
public static void main(String[] args){
Scanner sc = new Sc`enter code here`anner(System.in);
int multi;
System.out.println("Enter CreditCard number: ");
String ccn = sc.nextLine();
if(ccn.length() != 16 ){
System.out.println("ccn is not equal to 16-digits");//checking for 16-digit
}
else if(ccn.length() == 16){
System.out.println("Validating CreditCard ");
//multiplied numbers
int zero = Integer.parseInt(ccn.charAt(0)+"");
int second = Integer.parseInt(ccn.charAt(2)+"");
int fourth = Integer.parseInt(ccn.charAt(4)+"");
int sixth = Integer.parseInt(ccn.charAt(6)+"");
int eight = Integer.parseInt(ccn.charAt(8)+"");
int ten= Integer.parseInt(ccn.charAt(10)+"");
int twelve = Integer.parseInt(ccn.charAt(12)+"");
int fourteen = Integer.parseInt(ccn.charAt(14)+"");
// added numbers
int first = Integer.parseInt(ccn.charAt(1)+"");
int third = Integer.parseInt(ccn.charAt(3)+"");
int fifth= Integer.parseInt(ccn.charAt(5)+"");
int seventh = Integer.parseInt(ccn.charAt(7)+"");
int nineth = Integer.parseInt(ccn.charAt(9)+"");
int eleven = Integer.parseInt(ccn.charAt(11)+"");
int thirteen = Integer.parseInt(ccn.charAt(13)+"");
int fifteen = Integer.parseInt(ccn.charAt(15)+"");
//multiplication and addition
multi = ((zero*2)+ first) + ((second*2)+third) + ((fourth*2)+ fifth) + ((sixth*2)+seventh) + ((eight*2)+nineth) + ((ten*2)+eleven) + ((twelve*2)+thirteen) + ((fourteen*2)+fifteen);
System.out.println(multi);
System.out.println(zero);
}
}
}
关于java - 如何在char中使用数学运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23869606/