首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在char中使用数学运算?

如何在char中使用数学运算?
EN

Stack Overflow用户
提问于 2014-05-26 19:56:58
回答 1查看 114关注 0票数 0

我正在做一个信用卡验证程序(如果你不熟悉方法http://9gag.com/gag/70886/cracking-the-credit-card-code),这里是它的链接)。问题是:当尝试在代码中执行"int multi“操作时,int不会导入charAt操作处理的信用卡的实际值。我如何解决这个问题,我做错了什么?同样,char不允许数学运算,不是吗?

代码语言:javascript
复制
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);

        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-05-26 20:18:07

代码语言:javascript
复制
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);

        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23869606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档