java - 转换代码以获取带有第二个大括号的列表
问题描述
我有下面的一段代码,其中输入是动态的。在这里,我采用了 2 个输入,但还有更多输入。
我在循环中迭代这个方法()。在第一次迭代中,添加了 [name=ram, empNo=1]。在下一次迭代中,将添加更多详细信息,输出为::[name=ram, empNo=1, name=shyam, empNo=2] public class Main2 { static List list=new ArrayList<>();
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> list1=add();
list.addAll(list1);
System.out.println(list);
}
private static List<String> add() {
// TODO Auto-generated method stub
List<String> list2=new ArrayList<>();
list2.add("name=ram");
list2.add("empNo=1");
return list2;
}
}
我得到如下输出: [name=ram, empNo=1, name=shyam, empNo=2] 第二次迭代后。但我需要最终输出为 :: [{name=ram, empNo=1}, {name=shyam, empNo=2}]
谁能帮我解决这个问题
解决方案
你没有告诉方法做任何事情。list2 只是一个字符串列表,那么它怎么知道,在每第二个项目之后应该添加一个“},{”?
您需要做的是使用字段名称和 empNo 为员工定义一个类,定义 toString() 方法,使其返回"name=" + this.name + ", empNo=" + this.empNo
并将这些项目添加到列表中。之后,您可以使用 StringJoiner 创建您想要的输出,如下所示:
StringJoiner joiner = new StringJoinr("}, {", "[{", "}]");
list1.forEach(employee -> joiner.add(employee.toString()));
System.out.println(joiner);
推荐阅读
- pandas - 熊猫 loc() 函数
- javascript - React JS如何禁用缩放
- iframe - 如何绕过登录在我的应用程序中嵌入 Superset Apache 图表
- uitableview - Swift - ReloadData 不更新
- android - 未解决的参考: SnackBar 上的 findViewById
- android - 您的 APK 或 Android App Bundle 需要具有包名称 com.voca.abc
- r - 使用 for 循环在列表中追加列表
- c++ - convert string to double 结果与strtod不一致
- flutter - 如何访问 Firestore 中的嵌套项目?
- css - vue / nuxt - 从 API 导入 CSS 并插入到组件中