From b38245a034e6ef270e75862b8d4aabeac825d69c Mon Sep 17 00:00:00 2001 From: mohammadhm180 <“mohammadhm180@gmail.com“> Date: Wed, 20 Mar 2024 21:20:26 +0330 Subject: [PATCH 1/9] add fullName function --- Answers/40131712053/src/Main.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Answers/40131712053/src/Main.java diff --git a/Answers/40131712053/src/Main.java b/Answers/40131712053/src/Main.java new file mode 100644 index 0000000..40f911b --- /dev/null +++ b/Answers/40131712053/src/Main.java @@ -0,0 +1,11 @@ +public class Main { + public static void main(String[] args) { + + } + + public static String fullName(String firstName, String lastName){ + return firstName + " " + lastName; + } + + +} \ No newline at end of file From b505f3169fb42152d3f400173d6dfe52de282915 Mon Sep 17 00:00:00 2001 From: mohammadhm180 <“mohammadhm180@gmail.com“> Date: Wed, 20 Mar 2024 22:10:06 +0330 Subject: [PATCH 2/9] add phoneNumber function --- Answers/40131712053/src/Main.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Answers/40131712053/src/Main.java b/Answers/40131712053/src/Main.java index 40f911b..f19913d 100644 --- a/Answers/40131712053/src/Main.java +++ b/Answers/40131712053/src/Main.java @@ -7,5 +7,27 @@ public static String fullName(String firstName, String lastName){ return firstName + " " + lastName; } + public static String phoneNumber(String phone){ + boolean isAllDigits = true; + for (int i = 0; i < phone.length(); i++) { + if (!Character.isDigit(phone.charAt(i))) { + isAllDigits = false; + break; + } + } + if (!isAllDigits) { + return "wrong"; + } + if(phone.length() !=10){ + return "wrong"; + } + if(phone.charAt(0)!='9'){ + return "wrong"; + } + return "0"+phone; + } + + + } \ No newline at end of file From 7b1c5c4ecefeb376cc6d8f825202b31f02baaa43 Mon Sep 17 00:00:00 2001 From: mohammadhm180 <“mohammadhm180@gmail.com“> Date: Wed, 20 Mar 2024 22:17:37 +0330 Subject: [PATCH 3/9] add userId function --- Answers/40131712053/src/Main.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Answers/40131712053/src/Main.java b/Answers/40131712053/src/Main.java index f19913d..b517459 100644 --- a/Answers/40131712053/src/Main.java +++ b/Answers/40131712053/src/Main.java @@ -27,6 +27,24 @@ public static String phoneNumber(String phone){ return "0"+phone; } + public static String userId(String id){ + boolean isAllDigits = true; + for (int i = 0; i < id.length(); i++) { + if (!Character.isDigit(id.charAt(i))) { + isAllDigits = false; + break; + } + } + if (!isAllDigits) { + return "wrong"; + } + if(id.length()<4 || id.length()>13){ + return "wrong"; + } + return id; + } + + From 692bfa229f87fdc0690af404d90ac6f83dd6f3e9 Mon Sep 17 00:00:00 2001 From: mohammadhm180 <“mohammadhm180@gmail.com“> Date: Wed, 20 Mar 2024 22:38:39 +0330 Subject: [PATCH 4/9] add getInterests function --- Answers/40131712053/src/Main.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Answers/40131712053/src/Main.java b/Answers/40131712053/src/Main.java index b517459..bdf1a51 100644 --- a/Answers/40131712053/src/Main.java +++ b/Answers/40131712053/src/Main.java @@ -1,4 +1,8 @@ +import java.util.ArrayList; +import java.util.Scanner; + public class Main { + static Scanner scanner=new Scanner(System.in); public static void main(String[] args) { } @@ -44,6 +48,31 @@ public static String userId(String id){ return id; } + public static ArrayList getInterests(){ + System.out.println("enter exit while you are done"); + ArrayList interests = new ArrayList<>(); + while (interests.size()<10){ + int interest_number=interests.size()+1; + System.out.println("interest "+interest_number + ":"); + String interest=scanner.nextLine(); + if(interest.equals("")){ + continue; + }else if(interest.equals("exit")){ + if(interests.size()==0){ + System.out.println("you have to enter at least one interest"); + continue; + }else { + break; + } + + }else { + interests.add(interest); + } + + } + return interests; + } + From 0383b2e65aef50771aaece961534890b3767cc91 Mon Sep 17 00:00:00 2001 From: mohammadhm180 <“mohammadhm180@gmail.com“> Date: Wed, 20 Mar 2024 23:26:58 +0330 Subject: [PATCH 5/9] fix functions to get input --- Answers/40131712053/src/Main.java | 80 ++++++++++++++++++++----------- 1 file changed, 52 insertions(+), 28 deletions(-) diff --git a/Answers/40131712053/src/Main.java b/Answers/40131712053/src/Main.java index bdf1a51..44ed89c 100644 --- a/Answers/40131712053/src/Main.java +++ b/Answers/40131712053/src/Main.java @@ -7,43 +7,67 @@ public static void main(String[] args) { } - public static String fullName(String firstName, String lastName){ + public static String fullName(){ + String firstName=""; + String lastName=""; + System.out.println("first name:"); + while (firstName.equals("")){ + firstName=scanner.nextLine(); + } + System.out.println("last name:"); + while (lastName.equals("")){ + lastName=scanner.nextLine(); + } + return firstName + " " + lastName; } - public static String phoneNumber(String phone){ - boolean isAllDigits = true; - for (int i = 0; i < phone.length(); i++) { - if (!Character.isDigit(phone.charAt(i))) { - isAllDigits = false; - break; + public static String phoneNumber(){ + System.out.println("Phone Number:"); + String phone="wrong"; + while (phone.equals("wrong")){ + phone=scanner.nextLine(); + boolean isAllDigits = true; + for (int i = 0; i < phone.length(); i++) { + if (!Character.isDigit(phone.charAt(i))) { + isAllDigits = false; + break; + } + } + if (!isAllDigits) { + System.out.println("please enter only digits"); + phone= "wrong"; + } else if(phone.length() !=10){ + System.out.println("please enter 10 digits"); + phone= "wrong"; + } else if(phone.charAt(0)!='9'){ + System.out.println("the first digit must be 9"); + phone= "wrong"; } - } - if (!isAllDigits) { - return "wrong"; - } - if(phone.length() !=10){ - return "wrong"; - } - if(phone.charAt(0)!='9'){ - return "wrong"; } return "0"+phone; } - public static String userId(String id){ - boolean isAllDigits = true; - for (int i = 0; i < id.length(); i++) { - if (!Character.isDigit(id.charAt(i))) { - isAllDigits = false; - break; + public static String userId(){ + String id="wrong"; + System.out.println("user ID:"); + while (id.equals("wrong")){ + id=scanner.nextLine(); + boolean isAllDigits = true; + for (int i = 0; i < id.length(); i++) { + if (!Character.isDigit(id.charAt(i))) { + isAllDigits = false; + break; + } + } + if (!isAllDigits) { + System.out.println("please enter only digits"); + id= "wrong"; + } + if(id.length()<4 || id.length()>13){ + System.out.println("id length must be between 4 and 13"); + id= "wrong"; } - } - if (!isAllDigits) { - return "wrong"; - } - if(id.length()<4 || id.length()>13){ - return "wrong"; } return id; } From 16fa61ca69fdbb59d1eac937a02872046875a61f Mon Sep 17 00:00:00 2001 From: mohammadhm180 <“mohammadhm180@gmail.com“> Date: Wed, 20 Mar 2024 23:54:06 +0330 Subject: [PATCH 6/9] add userFullInformation function --- Answers/40131712053/src/Main.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Answers/40131712053/src/Main.java b/Answers/40131712053/src/Main.java index 44ed89c..fdb66ed 100644 --- a/Answers/40131712053/src/Main.java +++ b/Answers/40131712053/src/Main.java @@ -97,7 +97,17 @@ public static ArrayList getInterests(){ return interests; } - + public static String userFullInformation(String fullName,String phoneNumber,String userID,ArrayList interests) { + StringBuilder fullInformation = new StringBuilder(); + fullInformation.append("Hello! My name is ").append(fullName).append(". My ID is ").append(userID).append(". Here are some of my interests:\n"); + for(int i = 1; i <= interests.size(); i++){ + fullInformation.append(i).append(". "); + fullInformation.append(interests.get(i-1)).append("\n"); + } + fullInformation.append("\n"); + fullInformation.append("You can reach me via my phone number ").append(phoneNumber).append(".\n"); + return fullInformation.toString(); + } From 3715fb8292130ed96ca2634ce3456082906af521 Mon Sep 17 00:00:00 2001 From: mohammadhm180 <“mohammadhm180@gmail.com“> Date: Thu, 21 Mar 2024 00:06:36 +0330 Subject: [PATCH 7/9] add informationEncoder --- Answers/40131712053/src/Main.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Answers/40131712053/src/Main.java b/Answers/40131712053/src/Main.java index fdb66ed..83f48c3 100644 --- a/Answers/40131712053/src/Main.java +++ b/Answers/40131712053/src/Main.java @@ -109,6 +109,27 @@ public static String userFullInformation(String fullName,String phoneNumber,Stri return fullInformation.toString(); } + public static String informationEncoder(String information, int shift) { + StringBuilder encodedInformation = new StringBuilder(); + + for (int i = 0; i < information.length(); i++) { + char currentChar = information.charAt(i); + + if (Character.isUpperCase(currentChar)) { + char encodedChar = (char) (((currentChar - 'A' + shift) % 26) + 'A'); + encodedInformation.append(encodedChar); + } + else if (Character.isLowerCase(currentChar)) { + char encodedChar = (char) (((currentChar - 'a' + shift) % 26) + 'a'); + encodedInformation.append(encodedChar); + } + else { + encodedInformation.append(currentChar); + } + } + + return encodedInformation.toString(); + } } \ No newline at end of file From db96b377425a6a153b58ae95d00f5c1a7b81500a Mon Sep 17 00:00:00 2001 From: mohammadhm180 <“mohammadhm180@gmail.com“> Date: Thu, 21 Mar 2024 00:07:30 +0330 Subject: [PATCH 8/9] add informationDecoder function --- Answers/40131712053/src/Main.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Answers/40131712053/src/Main.java b/Answers/40131712053/src/Main.java index 83f48c3..5259b38 100644 --- a/Answers/40131712053/src/Main.java +++ b/Answers/40131712053/src/Main.java @@ -131,5 +131,27 @@ else if (Character.isLowerCase(currentChar)) { return encodedInformation.toString(); } + public static String informationDecoder(String encodedInformation, int shift) { + StringBuilder decodedInformation = new StringBuilder(); + + for (int i = 0; i < encodedInformation.length(); i++) { + char currentChar = encodedInformation.charAt(i); + + if (Character.isUpperCase(currentChar)) { + char decodedChar = (char) (((currentChar - 'A' - shift + 26) % 26) + 'A'); + decodedInformation.append(decodedChar); + } + else if (Character.isLowerCase(currentChar)) { + char decodedChar = (char) (((currentChar - 'a' - shift + 26) % 26) + 'a'); + decodedInformation.append(decodedChar); + } + else { + decodedInformation.append(currentChar); + } + } + + return decodedInformation.toString(); + } + } \ No newline at end of file From ce69909726ca0b19bc84e46ac231c890a3ca2f36 Mon Sep 17 00:00:00 2001 From: mohammadhm180 <“mohammadhm180@gmail.com“> Date: Thu, 21 Mar 2024 01:12:57 +0330 Subject: [PATCH 9/9] add menu --- Answers/40131712053/src/Main.java | 78 +++++++++++++++++++++++++++---- 1 file changed, 69 insertions(+), 9 deletions(-) diff --git a/Answers/40131712053/src/Main.java b/Answers/40131712053/src/Main.java index 5259b38..e705846 100644 --- a/Answers/40131712053/src/Main.java +++ b/Answers/40131712053/src/Main.java @@ -2,11 +2,75 @@ import java.util.Scanner; public class Main { - static Scanner scanner=new Scanner(System.in); + private static final Scanner scanner=new Scanner(System.in); + private static final int SHIFT_VALUE = 3; + private static String encodedFullName; + private static String encodedPhoneNumber; + private static String encodedInterests; + private static String encodedUserID; + + public static void main(String[] args) { + setInitialData(); + String input; + while (true){ + System.out.println("1-set full name\n2-set phone number\n3-set user ID\n4-set interests\n5-view user information\n6-view encoded user information\n7-exit"); + input=scanner.nextLine(); + if (input.equals("1")){ + String fullName =fullName(); + encodedFullName=informationEncoder(fullName,SHIFT_VALUE); + + }else if (input.equals("2")){ + String phoneNumber=phoneNumber(); + encodedPhoneNumber=informationEncoder(phoneNumber,SHIFT_VALUE); + + }else if (input.equals("3")){ + String userID=userId(); + encodedUserID=informationEncoder(userID,SHIFT_VALUE); + + }else if (input.equals("4")){ + ArrayList interests=getInterests(); + StringBuilder interest_String = new StringBuilder(); + for(int i = 1; i <= interests.size(); i++){ + interest_String.append(i).append(". "); + interest_String.append(interests.get(i-1)).append("\n"); + } + encodedInterests=informationEncoder(interest_String.toString(),SHIFT_VALUE); + + }else if (input.equals("5")){ + String decodedFullName=informationDecoder(encodedFullName,SHIFT_VALUE); + String decodedPhoneNumber=informationDecoder(encodedPhoneNumber,SHIFT_VALUE); + String decodedUserID=informationDecoder(encodedUserID,SHIFT_VALUE); + String decodedInterests=informationDecoder(encodedInterests,SHIFT_VALUE); + String userInformation=userFullInformation(decodedFullName,decodedPhoneNumber,decodedUserID,decodedInterests); + System.out.println(userInformation); + + + }else if (input.equals("6")){ + System.out.println("encoded full name: " + encodedFullName); + System.out.println("encoded phone number: " + encodedPhoneNumber); + System.out.println("encoded userID: " + encodedUserID); + System.out.println("encoded interests:\n" + encodedInterests); + + }else if (input.equals("7")){ + System.out.println("Good luck!" ); + break; + + }else { + System.out.println("Invalid input"); + } + + } } + public static void setInitialData(){ + encodedFullName=informationEncoder("(not provided yet)",SHIFT_VALUE); + encodedPhoneNumber=informationEncoder("(not provided yet)",SHIFT_VALUE); + encodedUserID=informationEncoder("(not provided yet)",SHIFT_VALUE); + encodedInterests=informationEncoder("(not provided yet)",SHIFT_VALUE); + } + public static String fullName(){ String firstName=""; String lastName=""; @@ -73,7 +137,7 @@ public static String userId(){ } public static ArrayList getInterests(){ - System.out.println("enter exit while you are done"); + System.out.println("enter 0 while you are done"); ArrayList interests = new ArrayList<>(); while (interests.size()<10){ int interest_number=interests.size()+1; @@ -81,7 +145,7 @@ public static ArrayList getInterests(){ String interest=scanner.nextLine(); if(interest.equals("")){ continue; - }else if(interest.equals("exit")){ + }else if(interest.equals("0")){ if(interests.size()==0){ System.out.println("you have to enter at least one interest"); continue; @@ -97,13 +161,10 @@ public static ArrayList getInterests(){ return interests; } - public static String userFullInformation(String fullName,String phoneNumber,String userID,ArrayList interests) { + public static String userFullInformation(String fullName,String phoneNumber,String userID,String interests) { StringBuilder fullInformation = new StringBuilder(); fullInformation.append("Hello! My name is ").append(fullName).append(". My ID is ").append(userID).append(". Here are some of my interests:\n"); - for(int i = 1; i <= interests.size(); i++){ - fullInformation.append(i).append(". "); - fullInformation.append(interests.get(i-1)).append("\n"); - } + fullInformation.append(interests); fullInformation.append("\n"); fullInformation.append("You can reach me via my phone number ").append(phoneNumber).append(".\n"); return fullInformation.toString(); @@ -153,5 +214,4 @@ else if (Character.isLowerCase(currentChar)) { return decodedInformation.toString(); } - } \ No newline at end of file