In: Computer Science
How can I write a separate java class to change a given name or a given email of a user that was already saved (keep in mind that there may be numerous names and emails).
Note: It should change the name or email that is saved in the txt file.
Here is my code so far:
User class
public class User {
private String fName;
private String lName;
private String UserEmail;
public User(String firstName, String lastName, String email) {
this.fName = firstName;
this.lName = lastName;
this.UserEmail = email;
}
//constructor used to load saved profile information.
public User(String firstName, String lastName, String email, double income, double expenses) {
this.fName = firstName;
this.lName = lastName;
this.UserEmail = email;
}
public String getFirstName() {
return fName;
}
public String getLastName() {
return lName;
}
public String getEmail() {
return UserEmail;
}
public void setFirstName(String firstName) {
this.fName = firstName;
}
public void setLastName(String lastName) {
this.lName = lastName;
}
public void setEmail(String email) {
this.UserEmail = email;
}
@Override
public String toString() {
return
fName +
", " + lName +
", " + UserEmail ;
}
}
Profile Create class
import java.io.IOException;
import java.util.Scanner;
public class ProfileCreate {
public User createUser() throws IOException {
String fName;
String lName;
String email;
Scanner read = new Scanner(System.in);
System.out.println("First name?");
fName = read.nextLine();
System.out.println("Last name?");
lName = read.nextLine();
System.out.println("Email?");
email = read.nextLine();
System.out.println("Successful Profile Creation");
User x = new User(fName, lName, email);
return x;
}
}
Save User Info class
import java.util.Scanner;
import java.io.*;
import java.util.*;
import java.lang.*;
public class SaveUserInfo {
public void writeDetails(String saveDetails) throws IOException{
FileWriter out = new FileWriter("Details.txt");
for (int x = 0; x < saveDetails.length(); x++){
out.write(saveDetails.charAt(x));
}
out.close();
}
}
import java.io.IOException;
import java.util.Scanner;
public class UserProfile
{
static int menu()
{
Scanner sc = new Scanner(System.in);
System.out.print("\n\n ************* MENU ************* ");
System.out.print("\n 1 - Change Name.");
System.out.print("\n 2 - Change Email.");
System.out.print("\n What is your choice? ");
return sc.nextInt();
}
static int searchName(User users[], String name)
{
for(int c = 0; c < users.length; c++)
if(users[c].getFirstName().equalsIgnoreCase(name))
return c;
return -1;
}
static int searchEmail(User users[], String email)
{
for(int c = 0; c < users.length; c++)
if(users[c].getFirstName().equalsIgnoreCase(email))
return c;
return -1;
}
static void change(User users[], int ch)
{
int found = -1;
Scanner sc = new Scanner(System.in);
switch(ch)
{
case 1:
System.out.print("\n Enter old first name to change: ");
String name = sc.nextLine();
found = searchName(users, name);
if(found == -1)
System.out.print("\n Name not available in the list.");
else
{
System.out.println("First name?");
String fName = sc.nextLine();
System.out.println("Last name?");
String lName = sc.nextLine();
users[found].setFirstName(fName);
users[found].setFirstName(lName);
}
break;
case 2:
System.out.print("\n Enter old first name to change: ");
String email = sc.nextLine();
found = searchName(users, email);
if(found == -1)
System.out.print("\n Email not available in the list.");
else
{
System.out.println("\n Enter new Email: ");
String newEmail = sc.nextLine();
users[found].setEmail(newEmail);
}
break;
default:
System.out.println("\n Invalid choice!!");
}
}
public static void main(String ss[])throws IOException
{
User users[] = new User[3];
ProfileCreate pc = new ProfileCreate();
SaveUserInfo sui = new SaveUserInfo();
String saveDetails = "";
for(int c = 0; c < users.length; c++)
{
users[c] = pc.createUser();
if(c == users.length - 1)
saveDetails += users[c].toString();
else
saveDetails += users[c].toString() + "\n";
}
System.out.println(saveDetails);
sui.writeDetails(saveDetails);
change(users, menu());
}
}