如何分割“以空格分割的字符串中间还有空格”的数据结构

Posted 哪 吒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何分割“以空格分割的字符串中间还有空格”的数据结构相关的知识,希望对你有一定的参考价值。

 如何分割“以空格分割的字符串中间还有空格”的数据结构,话不多说,直接上代码。

/**
 * 5 1 "zhang san feng" 0.000 "hello world" "哪吒" 
 *  --> 
 *  [5, 1, "zhang san feng", 0.000, "hello world", "哪吒"]
 */
private static void test01() {
    String str = "5 1 \\"zhang san feng\\" 0.000 \\"hello world\\" \\"哪吒\\"";
    final Pattern p = Pattern.compile("\\"(.*?)\\"");
    Matcher m = p.matcher(str);
    List<String> list = new ArrayList<String>();
    Map<String, String> map = new HashMap<String, String>();
    while (m.find()) {
        list.add(m.group());
    }
    System.out.println(list);//["zhang san feng", "hello world", "哪吒"]

    for (String s : list) {
        str = str.replace(s, s.replace(" ", ""));
        map.put(s.replace(" ", ""), s);
    }

    System.out.println(str);//5 1 "zhangsanfeng" 0.000 "helloworld" "哪吒"

    List<String> valueList = Arrays.asList(str.split(" "));
    System.out.println(valueList);//[5, 1, "zhangsanfeng", 0.000, "helloworld", "哪吒"]
    List<String> collect = valueList.stream().map(x -> {
        if(map.containsKey(x)) {
            return map.get(x);
        }
        return x;
    }).collect(Collectors.toList());
    System.out.println(collect);//[5, 1, "zhang san feng", 0.000, "hello world", "哪吒"]
}

public static void main(String[] args) {
    test01();
}

以上是关于如何分割“以空格分割的字符串中间还有空格”的数据结构的主要内容,如果未能解决你的问题,请参考以下文章

如何在全范围内平均减少 SQL 查询的结果行?

PL/SQL:, 如何将变量传递给 SELECT 语句并返回所有结果行

JMETER接口测试中,如何把察看结果树中的响应数据存储到指定文件

Fast-SCNN语义分割网络详解

Fast-SCNN语义分割网络详解

对联结表实现感到困惑