Creating a Product Code Validator in Java

Problem:

Write a program that asks the user to enter a product code starting with the form of: NNNNL, where N denotes a number and L a letter. Keep asking the user for a product number until the user enters "XXX". If N > 2000 and L = B, the code is blacklisted and considered as banned.

The main point of this product validator is to be able to handle exceptions in a robust manner. Thus, you are expected to handle two exceptions manually: IndexOutOfBoundsException and NumberFormatException.

At the end of the program, print the total number of attempts, valid codes and banned codes.


Output:

Enter a product code (XXX to quit):
1900G
Enter a product code (XXX to quit):
2500B
Enter a product code (XXX to quit):
1000R
Enter a product code (XXX to quit):
190G
Code of improper length.
Enter a product code (XXX to quit):
190RG
Region is not numeric.
Enter a product code (XXX to quit):
XXX
Total # attempts: 5
# valid codes: 3
# banned codes: 1


Solution:

import java.util.Scanner;
 public class ProductCodes {
     public static void main(String[] args)
     {    
         String code;
         Scanner scan = new Scanner(System.in);
         char city;
         int region, valid = 0, banned = 0,total = 0;
          
         System.out.println("Enter a product code (XXX to quit): ");
         code = scan.nextLine();
          
         while (!code.equals("XXX"))
         {
         try {
             total++;
             city = code.charAt(4);
             region = Integer.parseInt(code.substring(0,4));
             valid++;
             if (city == 'B' && region >= 2000)
                 banned++;
         } catch (StringIndexOutOfBoundsException e) {
             System.out.println("Code of improper length.");
         } catch (NumberFormatException e ) {
             System.out.println("Region is not numeric.");
         } finally {
              
         }
         System.out.println("Enter a product code (XXX to quit): ");
         code = scan.nextLine();
     }
         System.out.println("Total # attempts: " + total);
         System.out.println(" # valid codes: " + valid);
         System.out.println(" # banned codes: " + banned);
     }        
 }


No comments :

Post a Comment

Follow Me

If you like our content, feel free to follow me to stay updated.

Subscribe

Enter your email address:

We hate spam as much as you do.

Upload Material

Got an exam, project, tutorial video, exercise, solutions, unsolved problem, question, solution manual? We are open to any coding material. Why not upload?

Upload

Copyright © 2012 - 2014 Java Problems  --  About  --  Attribution  --  Privacy Policy  --  Terms of Use  --  Contact