Advertisement
Guest User

Exercise 4

a guest
Sep 9th, 2016
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.17 KB | None | 0 0
  1. //------- 1. class hvor vi definerer constructer og functions (methods) -------//
  2. package Exercise4;
  3.  
  4. public class Name {
  5.    
  6.     String firstName;
  7.     String middleName;
  8.     String lastName;
  9.    
  10.     // Kun 2 navne
  11.     public Name(String firstName, String lastName){
  12.         this.firstName = firstName;
  13.         this.middleName = "";
  14.         this.lastName = lastName;
  15.     }
  16.    
  17.     // 3 navne
  18.     public Name(String firstName, String middleName, String lastName){
  19.         this.firstName = firstName;
  20.         this.middleName = middleName;
  21.         this.lastName = lastName;
  22.     }
  23.    
  24.     // Hvis man skriver hele navnet ud i ét, splittes det automatisk
  25.     public Name(String fullName){
  26.         String[] nameArr = fullName.split(" ");     // Split ordene hvor der er mellemrum og fordel dem ud i et array
  27.        
  28.         this.firstName = nameArr[0];                // Vores first name er på den første plads i arrayet
  29.         if(nameArr.length >= 2){                    // Hvis vi har alle 3 navne skal vi have middle name med
  30.             this.middleName = nameArr[1];
  31.             this.lastName = nameArr[2];
  32.         } else {                                    // Hvis vi derimod kun har 2 navne behøver vi kun last name
  33.             this.lastName = nameArr[1];
  34.         }
  35.     }
  36.    
  37.     public String getFirstName(){
  38.         return this.firstName;
  39.     }
  40.    
  41.     public String getMiddleName(){
  42.         return this.middleName;
  43.     }
  44.    
  45.     public String getLastName(){
  46.         return this.lastName;
  47.     }
  48.    
  49.     public void setFirstName(String firstName){
  50.         this.firstName = firstName;
  51.     }
  52.    
  53.     public void setMiddleName(String middleName){
  54.         this.firstName = middleName;
  55.     }
  56.    
  57.     public void setLastName(String lastName){
  58.         this.firstName = lastName;
  59.     }
  60.    
  61.     // Lille bonus der laver et password om til stjerner
  62.     public String hidePassword(String password){
  63.         String pw = "";
  64.        
  65.         for(int i = 0; i < password.length(); i++)          // Loopet kører et bogstav ad gangen, og for hvert bogstav, tilføjes der en stjerne til "pw"
  66.             pw += "*";
  67.        
  68.         return pw;
  69.     }
  70.    
  71.     public String getUsername(){
  72.         // Lav et array af characters og fyld det med de første 2 bogstaver i first name
  73.         Character[] a = {this.firstName.charAt(0), this.firstName.charAt(1)};
  74.         String b = a[0].toString() + a[1].toString();
  75.        
  76.         // Lav et array af characters og fyld det med de sidste 2 bogstaver i last name
  77.         Character[] c = {this.lastName.charAt(this.lastName.length()-2), this.lastName.charAt(this.lastName.length()-1)};
  78.         String d = c[0].toString() + c[1].toString();
  79.        
  80.         return b + this.middleName.length() + d;            // Return de 2 første bogstaver fra first name + længden af mellemnavnet + de 2 sidste bogstaver fra last name
  81.     }
  82.    
  83.     // Find initialerne
  84.     public String getInits(){      
  85.         String inits = "";
  86.  
  87.         // Take the first character (0) in every name and convert them to a string, save both into inits
  88.         if(this.middleName == "")
  89.             inits = Character.toString(this.firstName.charAt(0)) + Character.toString(this.lastName.charAt(0));
  90.         else
  91.             inits = Character.toString(this.firstName.charAt(0)) + Character.toString(this.middleName.charAt(0)) + Character.toString(this.lastName.charAt(0));
  92.        
  93.         return inits;
  94.     }
  95.    
  96.     // "encrypting" the initials
  97.     public String getCryptoInits(int shift){
  98.         String[] abc = getInits().split("(?!^)");           // Tag initialerne fra getInits() og split dem op i et array
  99.         char a, b, c;
  100.         char[] abc3 = new char[3];                          // Nyt char array med 3 pladser ([0, 1, 2])
  101.        
  102.         a = (char)abc[0].charAt(0);                         // Siden abc er et string array, skal lortet castes til char
  103.         b = (char)abc[1].charAt(0);
  104.        
  105.         if(getInits().length() >= 2){                       // Vi finder ud af, om vi har middle name med
  106.             c = (char)abc[2].charAt(0);
  107.             abc3[0] = a;
  108.             abc3[1] = b;
  109.             abc3[2] = c;
  110.         } else {
  111.             abc3[0] = a;
  112.             abc3[1] = b;
  113.         }
  114.        
  115.         // Vi looper igennem alle initialer, inden vi gør noget ved dem, tjekker vi om vi har ramt en empty plads i arrayet (hvis der ikke er middle name)
  116.         // Vi tjekker også, om det nye tal, efter vi har shiftet vores character, stadig er mindre end 90 (90 betyder Z i ASCII) det er for, at skulle vi
  117.         // gå over 90 og ramme et tegn istedet for et bogstav, kan vi istedet wrap around, som vi gør efter "else". Vi går over 90, og så trækker vi
  118.         // 26 fra som er hele alfabetet.
  119.         for(int i = 0; i < 3; i++){
  120.             if(abc3[i] != 0){
  121.                 if(abc3[i] + shift <= 90)
  122.                     abc3[i] += shift;
  123.                 else {
  124.                     abc3[i] += shift;
  125.                     abc3[i] -= 26;
  126.                 }
  127.             }
  128.         }
  129.        
  130.         String crypto = "";
  131.         // Efter vi har behandlet hele skidtet laver vi hver character om til en string igen og spytter det ud samlet
  132.         if(getInits().length() >= 2)
  133.             return crypto = Character.toString(abc3[0]) + Character.toString(abc3[1]) + Character.toString(abc3[2]);
  134.         else
  135.             return crypto = Character.toString(abc3[0]) + Character.toString(abc3[1]);
  136.            
  137.     }
  138. }
  139.  
  140. //------- 2. class hvor vi benytter det hele -------//
  141. package Exercise4;
  142.  
  143. public class NameStuff {
  144.     public static void main(String[] args){
  145.         Name name = new Name("Tore Norge Lehmann");
  146.         int shift = 7;
  147.         System.out.println("Full name:  " + name.getFirstName() + " " + name.getMiddleName() + " " + name.getLastName());
  148.         System.out.println("Initials:   " + name.getInits() + "     Encrypted: " + name.getCryptoInits(shift));
  149.         System.out.println("Username:   " + name.getUsername());
  150.         System.out.println("Password:   " + name.hidePassword("sygthemmeligtpassword"));
  151.     }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement