Advertisement
Guest User

Untitled

a guest
Aug 30th, 2015
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. Compiler message: "Exception in thread "main" java.util.InputMismatchException: For input string: "4388576018402626"
  2. at java.util.Scanner.nextInt(Scanner.java:2097)
  3. at java.util.Scanner.nextInt(Scanner.java:2050)
  4. at CreditCardValidation.main(CreditCardValidation.java:12)"
  5.  
  6. import java.util.Scanner ; //import Scanner
  7.  
  8. public class CreditCardValidation {
  9.  
  10. public static void main (String[] args){
  11.  
  12. Scanner kbd = new Scanner(System.in) ;
  13.  
  14. System.out.println("Please enter Creditcard number: " ) ;
  15.  
  16. int credNumber = kbd.nextInt() ;
  17.  
  18. boolean n = isValid( credNumber ) ;
  19.  
  20. if (credNumber == 0 )
  21. System.exit(0) ;
  22.  
  23. do {
  24.  
  25. System.out.println("Please enter Creditcard number: " ) ;
  26. credNumber = kbd.nextInt() ;
  27. }
  28. while ( credNumber < 0 ) ;
  29.  
  30. if (credNumber > 0 )
  31. System.out.print("This credit card number is " + n ) ;
  32.  
  33.  
  34.  
  35.  
  36. }
  37.  
  38. /*
  39. Return true is the number is a valid card number.
  40. */
  41.  
  42. public static boolean isValid(long number) {
  43.  
  44.  
  45. long p = getPrefix(number, 1);
  46. long p2 = getPrefix(number, 2);
  47. int n = getSize(number);
  48.  
  49.  
  50. if ((p == 4 || p == 5 || p == 6 || p2 == 37)&& (n < 13 || n > 16) && (((sumOfDoubleEvenPlace(number) + sumOfoddPlace(number))) % 10) == 0)
  51. return true ;
  52. else
  53. return false ;
  54.  
  55. }
  56.  
  57.  
  58. /* The sum of every other digit, doubled, starting with the first digit. */
  59.  
  60. public static int sumOfDoubleEvenPlace(long number) {
  61. int sum = 0;
  62. int maxDigitLenth = 16;
  63. for (int i = 1; i <= maxDigitLenth; i++)
  64. {
  65. if (i % 2 == 0)
  66. {
  67. sum = sum + getDigit((int)(number % 10) * 2);
  68. }
  69. number /= 10;
  70. }
  71. return sum;
  72. }
  73.  
  74. /*
  75. Return the number if it is 0-9, otherwise return the sum of
  76. the digits of the number.
  77. */
  78.  
  79. public static int getDigit(int number) {
  80. if (number < 10) {
  81.  
  82. return number;
  83. }
  84. else {
  85.  
  86. return (number / 10) + (number % 10);
  87. }
  88.  
  89. }
  90. /*
  91. Return the sum of the odd-place digits.
  92. */
  93.  
  94. public static int sumOfoddPlace(long number) {
  95. int maxDigitLength = 16;
  96. int sum = 0;
  97. for (int i = 1; i <= maxDigitLength; i++)
  98. {
  99.  
  100. if (i % 2 == 1)
  101. {
  102. sum = sum + (int)(number % 10);
  103. }
  104. number /= 10;
  105. }
  106. return sum;
  107. }
  108.  
  109. /*
  110. Return the number of digits in d
  111. */
  112.  
  113. public static int getSize(long d) {
  114.  
  115. int size = 0 ;
  116.  
  117. while( d > 0 ) {
  118. d = d / 10 ;
  119. size = size + 1 ;
  120. }
  121. return size ;
  122. }
  123.  
  124. /*
  125. Return the first k number of digits from number. If the number of digits in number is
  126. less than k, return the number.
  127. */
  128.  
  129. public static long getPrefix(long n, int k) {
  130.  
  131. int f = getSize(n)-k;
  132.  
  133. long prefix = n/((long)(Math.pow(10, f)));
  134.  
  135. return prefix;
  136. }
  137.  
  138. /*
  139. Return true if the digit d is a prefix for number.
  140. */
  141.  
  142. public static boolean prefixMatched( long number, int d ) {
  143.  
  144. if ( d == getPrefix(number, 4))
  145.  
  146. return true ;
  147. else
  148. return false ;
  149.  
  150. }
  151.  
  152. }
  153.  
  154. long credNumber = kbd.nextLong();
  155. ..
  156. // in the do while loop also
  157. credNumber = kbd.nextLong() ;
  158.  
  159. long credNumber = kbd.nextLong();
  160.  
  161. String credNumber = kbd.nextLine();
  162.  
  163. long credNumber = kbd.nextLong();
  164. boolean n = isValid(credNumber);
  165.  
  166. public static boolean isValid(long number)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement