java - 尝试分割长字符串并将其数据用于列表

标签 java string

我有这个

 String t=  "Mark.Labinson/11051985/Chicago Michael.Louis/25081972/NewYork Gabriel.Vitton/05051988/SanDiego"

我创建了一个新的 java 类 Users,其中包含一些空字段,如名字、姓氏等。 我正在尝试使用字符串 t 中的数据来填充 Users 类中的那些空字段,因为之后,这些字段应该在列表中实例化。

更清楚地说,我试图使输出看起来像这样:

 Name: Mark
 Surname: Labinson
 Birthday: 11 may 1985
 Birthplace : Chicago

最佳答案

你也可以这样做:

UsersTest class

import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;

public class UsersTest {

    public static void main(String[] args) throws ParseException {
        String record =  "Mark.Labinson/11051985/Chicago Michael.Louis/25081972/NewYork Gabriel.Vitton/05051988/SanDiego";
        String[] users = record.split("\\s+");

        List<User> userList = new ArrayList<User>();
        for(String user : users) {
            userList.add(new User(user.split("\\/|\\.")));
        }
        System.out.println("userList : "+ userList);
    }
}

User class

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class User {

    private SimpleDateFormat inputFormat = new SimpleDateFormat("ddMMyyyy");
    private SimpleDateFormat outputFormat = new SimpleDateFormat("dd MMM yyyy");
    private String firstName;
    private String lastName;
    private String birthDate;
    private String birthPlace;

    public User(String[] user) throws ParseException {
        this(user[0], user[1], user[2], user[3]);
    }

    public User(String firstName, String lastName, String birthDate, String birthPlace) throws ParseException {
        this.firstName = firstName;
        this.lastName = lastName;
        this.birthDate = outputFormat.format(inputFormat.parse(birthDate));
        this.birthPlace = birthPlace;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public String getBirthDate() {
        return birthDate;
    }

    public String getBirthPlace() {
        return birthPlace;
    }

    @Override
    public String toString() {
        return "User [firstName=" + firstName + ", lastName=" + lastName
                + ", birthDate=" + birthDate + ", birthPlace=" + birthPlace
                + "]\n";
    }
}

Output:

userList : [User [firstName=Mark, lastName=Labinson, birthDate=11 May 1985, birthPlace=Chicago]
, User [firstName=Michael, lastName=Louis, birthDate=25 Aug 1972, birthPlace=NewYork]
, User [firstName=Gabriel, lastName=Vitton, birthDate=05 May 1988, birthPlace=SanDiego]
]

关于java - 尝试分割长字符串并将其数据用于列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34686778/

相关文章:

java - Netbeans 默认自定义空白 Web 应用程序模板

java - 如何从 TestNG 数据提供程序跳过数据集(出错时)?

java - 查找对象在哪个类中实例化

java - 为什么在构造的 JPanel 中表达了组件的某些属性,而没有表达其他属性?

C++字符串和内存管理

r - 如何为括号内并以逗号分隔的字符添加引号?

string - 如何将 Int 转换为 String.CharacterView.Index

java - 为什么方法定义头部没有 void 的 void 方法不会导致错误?

python - "TypeError: string argument without an encoding",但字符串已编码?

java - 将以单个空字节结尾的字节数组转换为 UTF16 编码字符串