Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //------- 1. class hvor vi definerer constructer og functions (methods) -------//
- package Exercise4;
- public class Name {
- String firstName;
- String middleName;
- String lastName;
- // Kun 2 navne
- public Name(String firstName, String lastName){
- this.firstName = firstName;
- this.middleName = "";
- this.lastName = lastName;
- }
- // 3 navne
- public Name(String firstName, String middleName, String lastName){
- this.firstName = firstName;
- this.middleName = middleName;
- this.lastName = lastName;
- }
- // Hvis man skriver hele navnet ud i ét, splittes det automatisk
- public Name(String fullName){
- String[] nameArr = fullName.split(" "); // Split ordene hvor der er mellemrum og fordel dem ud i et array
- this.firstName = nameArr[0]; // Vores first name er på den første plads i arrayet
- if(nameArr.length >= 2){ // Hvis vi har alle 3 navne skal vi have middle name med
- this.middleName = nameArr[1];
- this.lastName = nameArr[2];
- } else { // Hvis vi derimod kun har 2 navne behøver vi kun last name
- this.lastName = nameArr[1];
- }
- }
- public String getFirstName(){
- return this.firstName;
- }
- public String getMiddleName(){
- return this.middleName;
- }
- public String getLastName(){
- return this.lastName;
- }
- public void setFirstName(String firstName){
- this.firstName = firstName;
- }
- public void setMiddleName(String middleName){
- this.firstName = middleName;
- }
- public void setLastName(String lastName){
- this.firstName = lastName;
- }
- // Lille bonus der laver et password om til stjerner
- public String hidePassword(String password){
- String pw = "";
- 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"
- pw += "*";
- return pw;
- }
- public String getUsername(){
- // Lav et array af characters og fyld det med de første 2 bogstaver i first name
- Character[] a = {this.firstName.charAt(0), this.firstName.charAt(1)};
- String b = a[0].toString() + a[1].toString();
- // Lav et array af characters og fyld det med de sidste 2 bogstaver i last name
- Character[] c = {this.lastName.charAt(this.lastName.length()-2), this.lastName.charAt(this.lastName.length()-1)};
- String d = c[0].toString() + c[1].toString();
- 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
- }
- // Find initialerne
- public String getInits(){
- String inits = "";
- // Take the first character (0) in every name and convert them to a string, save both into inits
- if(this.middleName == "")
- inits = Character.toString(this.firstName.charAt(0)) + Character.toString(this.lastName.charAt(0));
- else
- inits = Character.toString(this.firstName.charAt(0)) + Character.toString(this.middleName.charAt(0)) + Character.toString(this.lastName.charAt(0));
- return inits;
- }
- // "encrypting" the initials
- public String getCryptoInits(int shift){
- String[] abc = getInits().split("(?!^)"); // Tag initialerne fra getInits() og split dem op i et array
- char a, b, c;
- char[] abc3 = new char[3]; // Nyt char array med 3 pladser ([0, 1, 2])
- a = (char)abc[0].charAt(0); // Siden abc er et string array, skal lortet castes til char
- b = (char)abc[1].charAt(0);
- if(getInits().length() >= 2){ // Vi finder ud af, om vi har middle name med
- c = (char)abc[2].charAt(0);
- abc3[0] = a;
- abc3[1] = b;
- abc3[2] = c;
- } else {
- abc3[0] = a;
- abc3[1] = b;
- }
- // 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)
- // 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
- // 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
- // 26 fra som er hele alfabetet.
- for(int i = 0; i < 3; i++){
- if(abc3[i] != 0){
- if(abc3[i] + shift <= 90)
- abc3[i] += shift;
- else {
- abc3[i] += shift;
- abc3[i] -= 26;
- }
- }
- }
- String crypto = "";
- // Efter vi har behandlet hele skidtet laver vi hver character om til en string igen og spytter det ud samlet
- if(getInits().length() >= 2)
- return crypto = Character.toString(abc3[0]) + Character.toString(abc3[1]) + Character.toString(abc3[2]);
- else
- return crypto = Character.toString(abc3[0]) + Character.toString(abc3[1]);
- }
- }
- //------- 2. class hvor vi benytter det hele -------//
- package Exercise4;
- public class NameStuff {
- public static void main(String[] args){
- Name name = new Name("Tore Norge Lehmann");
- int shift = 7;
- System.out.println("Full name: " + name.getFirstName() + " " + name.getMiddleName() + " " + name.getLastName());
- System.out.println("Initials: " + name.getInits() + " Encrypted: " + name.getCryptoInits(shift));
- System.out.println("Username: " + name.getUsername());
- System.out.println("Password: " + name.hidePassword("sygthemmeligtpassword"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement