Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Compiler message: "Exception in thread "main" java.util.InputMismatchException: For input string: "4388576018402626"
- at java.util.Scanner.nextInt(Scanner.java:2097)
- at java.util.Scanner.nextInt(Scanner.java:2050)
- at CreditCardValidation.main(CreditCardValidation.java:12)"
- import java.util.Scanner ; //import Scanner
- public class CreditCardValidation {
- public static void main (String[] args){
- Scanner kbd = new Scanner(System.in) ;
- System.out.println("Please enter Creditcard number: " ) ;
- int credNumber = kbd.nextInt() ;
- boolean n = isValid( credNumber ) ;
- if (credNumber == 0 )
- System.exit(0) ;
- do {
- System.out.println("Please enter Creditcard number: " ) ;
- credNumber = kbd.nextInt() ;
- }
- while ( credNumber < 0 ) ;
- if (credNumber > 0 )
- System.out.print("This credit card number is " + n ) ;
- }
- /*
- Return true is the number is a valid card number.
- */
- public static boolean isValid(long number) {
- long p = getPrefix(number, 1);
- long p2 = getPrefix(number, 2);
- int n = getSize(number);
- if ((p == 4 || p == 5 || p == 6 || p2 == 37)&& (n < 13 || n > 16) && (((sumOfDoubleEvenPlace(number) + sumOfoddPlace(number))) % 10) == 0)
- return true ;
- else
- return false ;
- }
- /* The sum of every other digit, doubled, starting with the first digit. */
- public static int sumOfDoubleEvenPlace(long number) {
- int sum = 0;
- int maxDigitLenth = 16;
- for (int i = 1; i <= maxDigitLenth; i++)
- {
- if (i % 2 == 0)
- {
- sum = sum + getDigit((int)(number % 10) * 2);
- }
- number /= 10;
- }
- return sum;
- }
- /*
- Return the number if it is 0-9, otherwise return the sum of
- the digits of the number.
- */
- public static int getDigit(int number) {
- if (number < 10) {
- return number;
- }
- else {
- return (number / 10) + (number % 10);
- }
- }
- /*
- Return the sum of the odd-place digits.
- */
- public static int sumOfoddPlace(long number) {
- int maxDigitLength = 16;
- int sum = 0;
- for (int i = 1; i <= maxDigitLength; i++)
- {
- if (i % 2 == 1)
- {
- sum = sum + (int)(number % 10);
- }
- number /= 10;
- }
- return sum;
- }
- /*
- Return the number of digits in d
- */
- public static int getSize(long d) {
- int size = 0 ;
- while( d > 0 ) {
- d = d / 10 ;
- size = size + 1 ;
- }
- return size ;
- }
- /*
- Return the first k number of digits from number. If the number of digits in number is
- less than k, return the number.
- */
- public static long getPrefix(long n, int k) {
- int f = getSize(n)-k;
- long prefix = n/((long)(Math.pow(10, f)));
- return prefix;
- }
- /*
- Return true if the digit d is a prefix for number.
- */
- public static boolean prefixMatched( long number, int d ) {
- if ( d == getPrefix(number, 4))
- return true ;
- else
- return false ;
- }
- }
- long credNumber = kbd.nextLong();
- ..
- // in the do while loop also
- credNumber = kbd.nextLong() ;
- long credNumber = kbd.nextLong();
- String credNumber = kbd.nextLine();
- long credNumber = kbd.nextLong();
- boolean n = isValid(credNumber);
- public static boolean isValid(long number)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement