将字符串String str ="{name=东邪,age=10;name=西瓶,age=20;name=南聋,age=30}"中的内容输入进学生类中并输出
时间: 2024-11-18 19:16:47 浏览: 11
详解java==运算符和equals()方法的区别
5星 · 资源好评率100%
首先,我们需要创建一个名为"Student"的类,它有一个或多个属性(如"name"和"age"),然后我们将字符串解析成键值对,并将其分配给每个学生的相应属性。这里我们可以假设有一个简单的Student类:
```java
public class Student {
private String name;
private int age;
// 构造函数
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// getter and setter methods for name and age
@Override
public String toString() {
return "Name: " + name + ", Age: " + age;
}
}
```
接下来,我们编写一个方法来解析和填充这个字符串:
```java
import java.util.Map;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public static void processString(String str) {
Pattern pattern = Pattern.compile("\\{(.*?)\\}");
Matcher matcher = pattern.matcher(str);
Map<String, String> keyValuePairs = new HashMap<>();
while (matcher.find()) {
String pair = matcher.group(1);
String[] split = pair.split(",");
keyValuePairs.put(split[0].trim(), split[1].trim());
}
Student student = null;
for (Map.Entry<String, String> entry : keyValuePairs.entrySet()) {
if (student == null) {
student = new Student(entry.getKey(), Integer.parseInt(entry.getValue()));
} else {
// 如果有多条记录,可以考虑合并,这里简单处理,忽略重复
System.out.println("Warning: Ignoring duplicate student");
}
}
if (student != null) {
System.out.println(student);
}
}
// 调用方法
public static void main(String[] args) {
String str = "{name=东邪,age=10;name=西瓶,age=20;name=南聋,age=30}";
processString(str);
}
```
运行上述代码,将会打印出第一个匹配到的学生信息,因为存在重复的"name",所以其他的学生不会被添加。
阅读全文