Java 形成为arrayList到arrayList的字符串
我从DB“[[“22-1-2017;10:00-19:00”],[“22-1-2017;10:00-19:00”]” 有没有一种简单的方法可以将字符串转换为arrayListJava 形成为arrayList到arrayList的字符串,java,arraylist,casting,Java,Arraylist,Casting,我从DB“[[“22-1-2017;10:00-19:00”],[“22-1-2017;10:00-19:00”]” 有没有一种简单的方法可以将字符串转换为arrayList 提前感谢如果您希望在字符串数组中输入日期,我为您的问题找到了一个解决方案: String s = "[[\"22-1-2017;10:00-19:00\"],[\"22-1-2017;10:00-19:00\"]]"; // first remove outter brackets s = s.s
提前感谢如果您希望在字符串数组中输入日期,我为您的问题找到了一个解决方案:
String s = "[[\"22-1-2017;10:00-19:00\"],[\"22-1-2017;10:00-19:00\"]]";
// first remove outter brackets
s = s.substring(1, s.length());
s = s.substring(0, s.length()-1);
// Create a Pattern for getting everything within brackets
Pattern r = Pattern.compile("\\[(.*?)\\]");
// Now create matcher object.
Matcher m = r.matcher(s);
List<String> l = new ArrayList<>();
while (m.find()) {
l.add(m.group(1));
}
System.out.println(l);
希望这有帮助
编辑:
如果你使用
Pattern r = Pattern.compile("\\[\"(.*?)\"\\]");
您根本不需要删除外括号,因为它已在以下内容中查找内容:
- 用双引号打开方括号
- 带右方括号的双引号
String jsonArray = "[[\"22-1-2017;10:00-19:00\"],[\"22-1-2017;10:00-19:00\"]]";
Type listType = new TypeToken<List<List<String>>>(){}.getType();
List<List<String>> list = new Gson().fromJson(jsonArray, listType);
System.out.println(list);
String jsonArray=“[\”22-1-2017;10:00-19:00\”],[\“22-1-2017;10:00-19:00\”];
类型listType=newTypeToken(){}.getType();
List List=new Gson().fromJson(jsonArray,listType);
系统输出打印项次(列表);
输出:[[22-1-2017;10:00-19:00],[22-1-2017;10:00-19:00]
试试这个
String a = "[[\"22-1-2017;10:00-19:00\"],[\"22-1-2017;10:00-19:00\"]]";
String[] b = a.replace("[", "").replace("]", "").replace("\"", "").split(",");
List<String> c = Arrays.asList(b);
String a=“[\”22-1-2017;10:00-19:00\”],[\”22-1-2017;10:00-19:00\”];
字符串[]b=a.replace(“[”,”).replace(“]”,”).replace(“\”,”).split(“,”);
列表c=数组。asList(b);
Output=[22-1-2017;10:00-19:00,22-1-2017;10:00-19:00]这取决于你对“易”这个词的定义。如果你像你给我们展示的那样有嵌套结构,通常你会想用某种解析器来读取它。什么?字符串的数组列表?哦,上帝蜘蛛是的字符串,比如[[“22-1-2017;10:00-19:00”],[“22-1-2017;10:00-19:00“]]您可以使用json解析器…@jValls您的示例”字符串类似[[“22-1-2017;10:00-19:00”],[“22-1-2017;10:00-19:00”]]显示字符串列表,而不是字符串列表。请澄清。假设日期既不包含
[
,]
也不包含“
,则仅当结果必须是平展的列表
,而不是列表
字符串时,它才起作用。replace()如果未找到匹配项,将返回原始值。如果可以将结果展平到列表中,是否有理由将结果展平到列表中?工作非常完美!正是我所需要的简单有效。我还为Type和TypeToken导入了以下包:import com.google.gson.reflect.TypeToken;import java.lang.reflect.Type;
String a = "[[\"22-1-2017;10:00-19:00\"],[\"22-1-2017;10:00-19:00\"]]";
String[] b = a.replace("[", "").replace("]", "").replace("\"", "").split(",");
List<String> c = Arrays.asList(b);