title: Scanner for long integer, Exception in thread "main" java.util.InputMismatchException
body: <p>I am at the last step to finalize my program, however whenever I enter my integer (long) I get a input mismatch:</p>
  
  <pre><code>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)"
  </code></pre>
  
  <p>My code is as follows:</p>
  
  <pre><code>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 &lt; 0 ) ;
  
  if (credNumber &gt; 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)&amp;&amp; (n &lt; 13 || n &gt; 16) &amp;&amp; (((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 &lt;= 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 &lt; 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 &lt;= 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 &gt; 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 ;
  
      }
  
  }
  </code></pre>
  
  <p>Thank you for your time!</p>