Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package creditcard;
- import java.io.FileWriter;
- import java.io.BufferedWriter;
- import java.io.IOException;
- public class Card {
- //Declarations
- private String cardNumber;
- private boolean test = false;
- private String cardType = "Unknown";
- public Card(){
- cardNumber = "0";
- }//end Default Constructor
- public Card(String input){
- cardNumber = input;
- }//end Constructor
- //
- public void typeMatcher(){
- if (cardNumber.startsWith("37"))
- cardType = "American Express";
- if (cardNumber.startsWith("4"))
- cardType = "Visa";
- if (cardNumber.startsWith("5"))
- cardType = "Mastercard";
- if (cardNumber.startsWith("6"))
- cardType = "Discover";
- }//end typeMatcher
- // Returns true if card number is Valid.
- public boolean isValid(String cardNumber){
- if (cardNumber.length() > 12 && cardNumber.length() < 17)
- if((sumOfDoubleEvenPlace(cardNumber)+sumOfOddPlace(cardNumber))/10==0)
- test = true;
- return test;
- }//end isValid
- // Get result from Step 2.
- public int sumOfDoubleEvenPlace(String cardNumber){
- int sum = 0;
- int num = 0;
- for (int i = cardNumber.length()-2; i>-1; i-=2){
- num = Integer.parseInt(cardNumber.substring(i,i+1));
- if (num<10)
- sum+=(num*2);
- else
- sum+=getDigit(num);
- }//end for
- System.out.println(sum);
- return sum;
- }//end SumOfDoubleEvenPlace
- // Return this number if it is a single digit
- // Otherwise return the sum of the two digits.
- public int getDigit (int num){
- int no1 = num/10;
- int no2 = num%10;
- return no1+no2;
- }//end getDigit
- // Returns sum of odd place digits in number.
- public int sumOfOddPlace(String cardNumber){
- int sum = 0;
- for (int i = cardNumber.length()-1; i>-1; i-=2)
- sum += Integer.parseInt(cardNumber.substring(i,i));
- System.out.println(sum);
- return sum;
- }//end sumOfOddPlace
- public void writeToFile(){
- try{
- FileWriter fw = new FileWriter("G:\\Output.txt",true);
- BufferedWriter bw = new BufferedWriter(fw);
- if (isValid(cardNumber)){
- bw.write(cardNumber+" is a valid "+cardType+" card.");
- bw.newLine();
- }//end if
- else{
- bw.write(cardNumber+" is an invalid "+cardType+" card.");
- bw.newLine();
- }//end else
- bw.close();
- System.out.println("Success");
- }//end try
- catch(IOException ioe){
- ioe.printStackTrace();
- }//end catch
- }//end outputToFile
- }//end Card
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement