设计方法,将学生数组的元素,进行拼接,格式要求:[{姓名:张三,年龄:19}, {姓名:李四,年龄:20}, {姓名:王五,年龄:30}] 分别使用StringBuilder完成 main方法中分别提供学生对象数组,对方法进行测试
时间: 2024-02-06 21:10:57 浏览: 22
好的,我可以帮你解决这个问题。这里提供两种方法,一种使用StringBuilder的append方法,另一种使用Java8的Stream API:
方法一:使用StringBuilder的append方法
```java
public static String joinStudents(Student[] students) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < students.length; i++) {
sb.append("{姓名:").append(students[i].getName()).append(",年龄:").append(students[i].getAge()).append("}");
if (i != students.length - 1) {
sb.append(", ");
}
}
sb.append("]");
return sb.toString();
}
```
方法二:使用Java8的Stream API
```java
public static String joinStudents(Student[] students) {
return Arrays.stream(students)
.map(s -> String.format("{姓名:%s,年龄:%d}", s.getName(), s.getAge()))
.collect(Collectors.joining(", ", "[", "]"));
}
```
其中,Student类需要自行定义。
下面是一个完整的示例:
```java
public class Main {
public static void main(String[] args) {
Student[] students = {new Student("张三", 19), new Student("李四", 20), new Student("王五", 30)};
String result = joinStudents(students);
System.out.println(result);
}
public static String joinStudents(Student[] students) {
// 方法一:使用StringBuilder的append方法
/*
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < students.length; i++) {
sb.append("{姓名:").append(students[i].getName()).append(",年龄:").append(students[i].getAge()).append("}");
if (i != students.length - 1) {
sb.append(", ");
}
}
sb.append("]");
return sb.toString();
*/
// 方法二:使用Java8的Stream API
return Arrays.stream(students)
.map(s -> String.format("{姓名:%s,年龄:%d}", s.getName(), s.getAge()))
.collect(Collectors.joining(", ", "[", "]"));
}
}
class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
输出结果为:
```
[{姓名:张三,年龄:19}, {姓名:李四,年龄:20}, {姓名:王五,年龄:30}]
```