首页 > 解决方案 > 更改 API 数据

问题描述

我正在开发一个电子商务颤振应用程序,你知道在这种应用程序中我们有类别,我有一个端点来获取产品类别,问题是我得到这样的数据

[

'礼物','HOME_AND_LIVING','WEDDING_AND_PARTY','CLOETHES_AND_SHOES',

]

但我需要像这样使用它

[

“礼物”、“家居与生活”、“婚礼与派对”、“衣服和鞋子”

]

所以我需要更改每个字符串。任何想法?

标签: flutterdart

解决方案


有许多不同的方法可以做到这一点。基本上,您从以下开始:

List<String> data = [
    'GIFT',
    'HOME_AND_LIVING',
    'WEDDING_AND_PARTY',
    'CLOETHES_AND_SHOES',
];

如果您只想将每个短语的第一个字符大写,您可以这样做:

List<String> transformed = data.map((s) {
    var chars = s.split('');
    return "${chars[0].toUpperCase()}${s.substring(1).toLowerCase()}";
}).toList();

结果将是:

[Gift, Home_and_living, Wedding_and_party, Cloethes_and_shoes]

假设您想要相同的结果,但没有_. 然后你可以这样做:

List<String> transformed2 = data.map((s) {
    var chars = s.split('');
    return "${chars[0].toUpperCase()}${s.substring(1).replaceAll("_", " ").toLowerCase()}";
}).toList();

结果将是:

[Gift, Home and living, Wedding and party, Cloethes and shoes]

现在假设您要将短语中的每个单词大写并删除_. 你可以这样做:

List<String> transformed3 = data.map((s) {
    String _s = s.replaceAll("_", " ");
    var words = _s.split(' ');
    List<String> parts = words.map((s) {
        var chars = s.split('');
        return "${chars[0].toUpperCase()}${s.substring(1).toLowerCase()}";
    }).toList();
    return parts.join(" ");
}).toList();

结果将是:

[Gift, Home And Living, Wedding And Party, Cloethes And Shoes]

最后,您可以通过查找您不想大写的特定单词来清理它。在这种情况下,单词"and". 所以如果你这样做:

List<String> transformed4 = data.map((s) {
    String _s = s.replaceAll("_", " ");
    var words = _s.split(' ');
    List<String> parts = words.map((s) {
        var chars = s.split('');
        return "${chars[0].toUpperCase()}${s.substring(1).toLowerCase()}".replaceAll("And", "and");
    }).toList();
    return parts.join(" ");
}).toList();

你会是这样的结果:

[Gift, Home and Living, Wedding and Party, Cloethes and Shoes]

推荐阅读