用Java详细完成:1.字符串转对象。 字符串如下:“zhangsan,18,男,北京;李四,19,男,上海;小芳,19,女,上海;王刚,19,男,上海” 将字符串转化为Person对象,并存入到集合输出。代码将会在IDEA运行。
时间: 2024-12-29 07:28:24 浏览: 5
首先,我们需要创建一个`Person`类,包含姓名、年龄、性别和城市等属性。然后我们将使用`StringTokenizer`或`Pattern`与`Matcher`对字符串进行分割,将每个分隔后的部分转换成对应的属性值。
```java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Person {
private String name;
private int age;
private String gender;
private String city;
// 构造函数
public Person(String name, int age, String gender, String city) {
this.name = name;
this.age = age;
this.gender = gender;
this.city = city;
}
// getters and setters...
}
public class Main {
public static void main(String[] args) {
String str = "zhangsan,18,男,北京;李四,19,男,上海;小芳,19,女,上海;王刚,19,男,上海";
List<Person> people = parsePeople(str);
for (Person person : people) {
System.out.println(person);
}
}
// 使用正则表达式解析字符串并构造Person对象
public static List<Person> parsePeople(String str) {
Pattern pattern = Pattern.compile("\\s*([^,\\s]+),\\s*(\\d+),\\s*(男|女),\\s*([^(]+)");
Matcher matcher = pattern.matcher(str);
ArrayList<Person> peopleList = new ArrayList<>();
while (matcher.find()) {
String name = matcher.group(1);
int age = Integer.parseInt(matcher.group(2));
String gender = matcher.group(3);
String city = matcher.group(4);
peopleList.add(new Person(name, age, gender, city));
}
return peopleList;
}
}
```
在这个例子中,我们假设输入字符串的格式总是正确的。`parsePeople`方法会通过匹配模式获取四个字段,然后创建一个新的`Person`对象。最后,主函数会打印出所有的人。
阅读全文