I NEED HELP PUTTING THE PROGRAM WITH METHODS AND CONSTRUCTOR. public class Credi
ID: 3903850 • Letter: I
Question
I NEED HELP PUTTING THE PROGRAM WITH METHODS AND CONSTRUCTOR.
public class CreditCardValidator { /** * @param number * @return */ public static boolean isValid(long number) { int total = sumOfDoubleEvenPlace(number) + sumOfOddPlace(number); if ((total % 10 == 0) && (prefixMatched(number, 1) == true) && (getSize(number) >= 13) && (getSize(number) <= 16)) { return true; } else { return false; } } /** * @param number * @return */ public static int getDigit(int number) { if (number <= 9) { return number; } else { int firstDigit = number % 10; int secondDigit = (int) (number / 10); return firstDigit + secondDigit; } } /** * @param number * @return */ public static int sumOfOddPlace(long number) { int result = 0; while (number > 0) { result += (int) (number % 10); number = number / 100; } return result; } /** * @param number * @return */ public static int sumOfDoubleEvenPlace(long number) { int result = 0; long temp = 0; while (number > 0) { temp = number % 100; result += getDigit((int) (temp / 10) * 2); number = number / 100; } return result; } /** * @param number * @param d * @return */ public static boolean prefixMatched(long number, int d) { if ((getPrefix(number, d) == 4) || (getPrefix(number, d) == 5) || (getPrefix(number, d) == 3)) { if (getPrefix(number, d) == 3) { System.out.println(" Visa Card "); } else if (getPrefix(number, d) == 5) { System.out.println(" Master Card "); } else if (getPrefix(number, d) == 3) { System.out.println(" American Express Card "); } return true; } else { return false; } } /** * @param d * @return */ public static int getSize(long d) { int count = 0; while (d > 0) { d = d / 10; count++; } return count; } /** * @param number * @param k * @return */ public static long getPrefix(long number, int k) { if (getSize(number) < k) { return number; } else { int size = (int) getSize(number); for (int i = 0; i < (size - k); i++) { number = number / 10; } return number; } } /** * @param args */ public static void main(String[] args) { long input = 4388576018410707l; if (isValid(input) == true) { System.out.println(" " + input + " is Valid. "); } else { System.out.println(" " + input + " is Invalid. "); } input = 4388576018402626l; if (isValid(input) == true) { System.out.println(" " + input + " is Valid. "); } else { System.out.println(" " + input + " is Invalid. "); } } }
Explanation / Answer
public class CreditCard{
CreditCard(){
}
/** * @param number * @return */
public boolean isValid(long number) {
int total = this.sumOfDoubleEvenPlace(number) + this.sumOfOddPlace(number);
if ((total % 10 == 0) && (this.prefixMatched(number, 1) == true) && (this.getSize(number) >= 13) && (this.getSize(number) <= 16)) {
return true;
} else {
return false; }
}
/** * @param number * @return */
public int sumOfDoubleEvenPlace(long number) {
int result = 0; long temp = 0;
while (number > 0) {
temp = number % 100;
result += this.getDigit((int) (temp / 10) * 2);
number = number / 100;
}
return result;
}
/** * @param number * @return */
public int getDigit(int number) {
if (number <= 9) {
return number;
}
else {
int firstDigit = number % 10;
int secondDigit = (int) (number / 10);
return firstDigit + secondDigit;
}
}
/** * @param number * @return */
public int sumOfOddPlace(long number) {
int result = 0;
while (number > 0) {
result += (int) (number % 10);
number = number / 100;
}
return result;
}
/** * @param number * @param d * @return */
public boolean prefixMatched(long number, int d) {
if ((this.getPrefix(number, d) == 4) || (this.getPrefix(number, d) == 5) || (this.getPrefix(number, d) == 3)) { if (this.getPrefix(number, d) == 3)
{
System.out.println(" Visa Card ");
} else if (this.getPrefix(number, d) == 5) {
System.out.println(" Master Card ");
} else if (this.getPrefix(number, d) == 3) {
System.out.println(" American Express Card ");
} return true;
} else {
return false; }
}
/** * @param number * @param k * @return */
public long getPrefix(long number, int k) {
if (this.getSize(number) < k) {
return number;
} else {
int size = (int) this.getSize(number);
for (int i = 0; i < (size - k); i++) {
number = number / 10;
}
return number; }
}
/** * @param d * @return */
public int getSize(long d) {
int count = 0;
while (d > 0) {
d = d / 10; count++;
}
return count;
}
}
public class CreditCardValidator {
public static void main(String[] args) {
long input = 4388576018410707l;
CreditCard obj= new CreditCard();
if (obj.isValid(input) == true)
{ System.out.println(" " + input + " is Valid. ");}
else
{ System.out.println(" " + input + " is Invalid. "); }
input = 4388576018402626l;
if (obj.isValid(input) == true)
{ System.out.println(" " + input + " is Valid. "); }
else
{ System.out.println(" " + input + " is Invalid. "); }
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.