Flutter电商APP如何将API返回的大写下划线分类字符串转为规范展示文本?
Flutter 分类字符串批量转换实现方案
你可以通过「特殊规则优先匹配+通用格式转换」的逻辑实现批量处理,适配现有需求同时兼容后续新增分类,具体实现代码如下:
String formatCategory(String rawCategory) { // 特殊分类映射表,覆盖自定义连接符场景 final Map<String, String> specialCategoryMap = { 'HOME_AND_LIVING': 'Home & Living', 'WEDDING_AND_PARTY': 'Wedding & Party', 'CLOETHES_AND_SHOES': 'Cloethes and Shoes', }; // 优先匹配特殊规则 if (specialCategoryMap.containsKey(rawCategory)) { return specialCategoryMap[rawCategory]!; } // 通用转换逻辑,适配普通分类 final wordList = rawCategory.split('_'); final formattedWordList = wordList.map((word) { if (word.isEmpty) return word; return word[0].toUpperCase() + word.substring(1).toLowerCase(); }).toList(); return formattedWordList.join(' '); } // 批量调用示例 void main() { final rawCategories = ['GIFT', 'HOME_AND_LIVING', 'WEDDING_AND_PARTY', 'CLOETHES_AND_SHOES']; final formattedCategories = rawCategories.map((e) => formatCategory(e)).toList(); print(formattedCategories); // 输出:[Gift, Home & Living, Wedding & Party, Cloethes and Shoes] }
注意:如果前端不需要HTML转义直接显示
&符号,直接修改映射表中的&为&即可。后续新增分类如果没有特殊连接符需求,不需要修改代码自动适配;如果有特殊规则,只需要在specialCategoryMap中新增对应键值对即可。
内容的提问来源于stack exchange,提问作者Mohamad Jabaly
相关产品推荐
相关产品推荐

