View difference between Paste ID: h9ekjXj6 and
SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | package creditcard; |
2 | import java.io.FileWriter; | |
3 | import java.io.BufferedWriter; | |
4 | import java.io.IOException; | |
5 | ||
6 | public class Card { | |
7 | ||
8 | //Declarations | |
9 | private String cardNumber; | |
10 | private boolean test = false; | |
11 | private String cardType = "Unknown"; | |
12 | ||
13 | public Card(){ | |
14 | cardNumber = "0"; | |
15 | }//end Default Constructor | |
16 | ||
17 | public Card(String input){ | |
18 | cardNumber = input; | |
19 | }//end Constructor | |
20 | ||
21 | // | |
22 | public void typeMatcher(){ | |
23 | if (cardNumber.startsWith("37")) | |
24 | cardType = "American Express"; | |
25 | if (cardNumber.startsWith("4")) | |
26 | cardType = "Visa"; | |
27 | if (cardNumber.startsWith("5")) | |
28 | cardType = "Mastercard"; | |
29 | if (cardNumber.startsWith("6")) | |
30 | cardType = "Discover"; | |
31 | }//end typeMatcher | |
32 | ||
33 | // Returns true if card number is Valid. | |
34 | public boolean isValid(String cardNumber){ | |
35 | if (cardNumber.length() > 12 && cardNumber.length() < 17) | |
36 | if((sumOfDoubleEvenPlace(cardNumber)+sumOfOddPlace(cardNumber))/10==0) | |
37 | test = true; | |
38 | return test; | |
39 | }//end isValid | |
40 | ||
41 | // Get result from Step 2. | |
42 | public int sumOfDoubleEvenPlace(String cardNumber){ | |
43 | int sum = 0; | |
44 | int num = 0; | |
45 | for (int i = cardNumber.length()-2; i>-1; i-=2){ | |
46 | num = Integer.parseInt(cardNumber.substring(i,i+1)); | |
47 | if (num<10) | |
48 | sum+=(num*2); | |
49 | else | |
50 | sum+=getDigit(num); | |
51 | }//end for | |
52 | System.out.println(sum); | |
53 | return sum; | |
54 | }//end SumOfDoubleEvenPlace | |
55 | ||
56 | // Return this number if it is a single digit | |
57 | // Otherwise return the sum of the two digits. | |
58 | public int getDigit (int num){ | |
59 | int no1 = num/10; | |
60 | int no2 = num%10; | |
61 | return no1+no2; | |
62 | }//end getDigit | |
63 | ||
64 | // Returns sum of odd place digits in number. | |
65 | public int sumOfOddPlace(String cardNumber){ | |
66 | int sum = 0; | |
67 | for (int i = cardNumber.length()-1; i>-1; i-=2) | |
68 | sum += Integer.parseInt(cardNumber.substring(i,i)); | |
69 | System.out.println(sum); | |
70 | return sum; | |
71 | }//end sumOfOddPlace | |
72 | ||
73 | public void writeToFile(){ | |
74 | try{ | |
75 | FileWriter fw = new FileWriter("G:\\Output.txt",true); | |
76 | BufferedWriter bw = new BufferedWriter(fw); | |
77 | if (isValid(cardNumber)){ | |
78 | bw.write(cardNumber+" is a valid "+cardType+" card."); | |
79 | bw.newLine(); | |
80 | }//end if | |
81 | else{ | |
82 | bw.write(cardNumber+" is an invalid "+cardType+" card."); | |
83 | bw.newLine(); | |
84 | }//end else | |
85 | bw.close(); | |
86 | System.out.println("Success"); | |
87 | }//end try | |
88 | ||
89 | catch(IOException ioe){ | |
90 | ioe.printStackTrace(); | |
91 | }//end catch | |
92 | ||
93 | }//end outputToFile | |
94 | ||
95 | }//end Card |