Новый экземпляр класса из строки
Допустим у нас есть строка Ivan Minaleev 12.03.2020 eample.com vk.com/elad, как ее преобразовать в новый экземпляр класса,чтобы получился новый экземпляр с полями из данной строки?
Класс:
package com.example.MVCLab3;
import java.util.Objects;
public class User {
private String Name;
private String Surname;
private String Date;
private String Email;
private String Socials;
public User(String name, String surname, String date, String email, String socials) {
Name = name;
Surname = surname;
Date = date;
Email = email;
Socials = socials;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getSurname() {
return Surname;
}
public void setSurname(String surname) {
Surname = surname;
}
public String getDate() {
return Date;
}
public void setDate(String date) {
Date = date;
}
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
public String getSocials() {
return Socials;
}
public void setSocials(String socials) {
Socials = socials;
}
@Override
public String toString() {
return Name + " " + Surname + " "+ Date + " "+ Email + " "+ Socials +"\n";
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof User)) return false;
User user = (User) o;
return getName().equals(user.getName()) && getSurname().equals(user.getSurname()) && getDate().equals(user.getDate())
&& getEmail().equals(user.getEmail()) && getSocials().equals(user.getSocials());
}
@Override
public int hashCode() {
return Objects.hash(getName(), getSurname(), getDate(), getEmail(), getSocials());
}
}
Ответы (1 шт):
Автор решения: rhino_rus
→ Ссылка
Если строка всегда имеет один и тот же формат, то её можно разбить на отдельные значения по определенному принципу и передать полученные значения в конструктор класса.
Пример:
String input = "Ivan Minaleev 12.03.2020 eample.com vk.com/elad";
String[] values = input.split("[ ]+");
User user = new User(
values[0], // Name
values[1], // Surname
values[2], // Date
values[3], // email
values[4] //socuals
);