java的String转换list

简介: 红斌出品,必是良品

最近面试的时候有一些心得总结是关于String转换list的

代码如下:

String sL = "["

  + "{\"id\":\"1\",\"name\":\"张三\"},"

  + "{\"id\":\"2\",\"name\":\"李四\"},"

  + "{\"id\":\"3\",\"name\":\"王五\"},"

  + "{\"id\":\"4\",\"name\":\"李雷\"}"

  + "]";

String sS = "[{\"stuId\":\"1\", \"subjectId\":\"1\", \"subjectName\":\"英语\", \"score\":\"90\"},"

  + "{\"stuId\":\"1\", \"subjectId\":\"2\", \"subjectName\":\"数学\", \"score\":\"80\"},"

  + "{\"stuId\":\"1\", \"subjectId\":\"3\", \"subjectName\":\"语文\", \"score\":\"70\"},"

  + "{\"stuId\":\"2\", \"subjectId\":\"1\", \"subjectName\":\"英语\", \"score\":\"85\"},"

  + "{\"stuId\":\"2\", \"subjectId\":\"2\", \"subjectName\":\"数学\", \"score\":\"75\"},"

  + "{\"stuId\":\"2\", \"subjectId\":\"3\", \"subjectName\":\"语文\", \"score\":\"90\"},{\"stuId\":\"3\", \"subjectId\":\"3\", \"subjectName\":\"语文\", \"score\":\"60\"}]";

List<Map<String,Object>>list = new ArrayList<Map<String,Object>>();

List<Map<String,Object>>list1 = new ArrayList<Map<String,Object>>();

sL = sL.replaceAll("[\\[\\]]", "");//去除方括号

String[] splitArray = sL.split("},");//去除大括号

sS = sS.replaceAll("[\\[\\]]", "");//去除方括号

String[] splitArray1 = sS.split("},");//去除大括号

for(int i=0; i<splitArray.length;i++) {

 if(i==splitArray.length-1) {

  splitArray[i] = splitArray[i].substring(1, splitArray[i].length()-1);

 }else {

  splitArray[i]=splitArray[i].substring(1, splitArray[i].length());

 }

 

 Map<String,Object> map = new HashMap<String,Object>();

 

 

 String[] mapArray = splitArray[i].split(",");

 for(int j=0 ;j<mapArray.length ;j++) {

  String str = mapArray[j].replaceAll("\"", "");

  String[] keyValue = str.split(": ");

  //防止value为空

 

  if(keyValue.length==2)

   map.put(keyValue[0], keyValue[1]);

  else

   map.put(keyValue[0], "");

   }

 list.add(map);

 }

for(int i=0; i<splitArray1.length;i++) {

 if(i==splitArray1.length-1) {

  splitArray1[i] = splitArray1[i].substring(1, splitArray1[i].length()-1);

 }else {

  splitArray1[i]=splitArray1[i].substring(1, splitArray1[i].length());

 }

 

 Map<String,Object> map1 = new HashMap<String,Object>();

 

 String[] mapArray1 = splitArray1[i].split(",");

 for(int j=0 ;j<mapArray1.length ;j++) {

  String str = mapArray1[j].replaceAll("\"", "");

 

  String[] keyValue = str.split(":");

 

  if(keyValue.length==2)

   map1.put(keyValue[0], keyValue[1]);

  else

   map1.put(keyValue[0], "");

   }

 list1.add(map1);

 }

这是两个string的转换list但是没有把两个list合并键和值的理解自己看一看

string先转换成map再转换成list

这个是大厂的邮箱面试题,大家可以做个参考学习


目录
相关文章
|
2月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
326 5
|
4月前
|
存储 SQL 缓存
Java字符串处理:String、StringBuilder与StringBuffer
本文深入解析Java中String、StringBuilder和StringBuffer的核心区别与使用场景。涵盖字符串不可变性、常量池、intern方法、可变字符串构建器的扩容机制及线程安全实现。通过性能测试对比三者差异,并提供最佳实践与高频面试问题解析,助你掌握Java字符串处理精髓。
|
5月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
375 14
|
9月前
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList&lt;&gt;()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
687 1
Java 中数组Array和列表List的转换
|
9月前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
282 11
|
9月前
|
Java
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、&quot;+&quot;操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
301 9
|
存储 JavaScript Java
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
193 2
Java 中的 String Pool 简介
|
缓存 安全 Java
java 为什么 String 在 java 中是不可变的?
本文探讨了Java中String为何设计为不可变类型,从字符串池的高效利用、哈希码缓存、支持其他对象的安全使用、增强安全性以及线程安全等方面阐述了不可变性的优势。文中还通过具体代码示例解释了这些优点的实际应用。
335 1
java 为什么 String 在 java 中是不可变的?
|
存储 Java
Java 11 的String是如何优化存储的?
本文介绍了Java中字符串存储优化的原理和实现。通过判断字符串是否全为拉丁字符,使用`byte`代替`char`存储,以节省空间。具体实现涉及`compress`和`toBytes`方法,前者用于尝试压缩字符串,后者则按常规方式存储。代码示例展示了如何根据配置决定使用哪种存储方式。
279 1