开发者社区> 问答> 正文

将原始数据转换为自定义的xml

我想使用Java将原始文件转换为以下格式-

原始输入:

state | abc country | FR-FRA 输出:

abc FR-FRA State属性应附加上面显示的国家/地区代码。

展开
收起
小六码奴 2019-10-03 19:37:31 717 0
1 条回答
写回答
取消 提交回答
  • Java Stream API可以帮助你

    String raw ="name1|value1\n" +
                    "name2|value2";
    String template = "<data attribute=\"%s\">%s</data>";
    String output = Arrays.stream(raw.split("\n"))
            .map(rawPair -> rawPair.split("\\|"))
            .map(pair -> String.format(template, pair[0], pair[1]))
            .collect(Collectors.joining("\n"));
    

    将输出

    value1 value2 但是拥有特定的业务逻辑需要更多的动作。首先获取国家/地区代码,然后在流处理中修饰你的属性名称

    BiFunction<String, String, String> decorate = (String name, String code) -> {
        if ("state".equals(name)) {
            return name + code;
        } else {
            return name;
        }
    };
    Function<String, String> countryCode = (String source) -> {
        String head = "country|";
        int start = source.indexOf(head) + head.length();
        return source.substring(start, start + 2);
    };
    
    String code = countryCode.apply(raw);
    
    ...
    .map(pair -> String.format(template, decorate.apply(pair[0], code), pair[1]))
    ...
    
    2019-10-09 15:59:18
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载