flutter - 更改 API 数据
问题描述
我正在开发一个电子商务颤振应用程序,你知道在这种应用程序中我们有类别,我有一个端点来获取产品类别,问题是我得到这样的数据
[
'礼物','HOME_AND_LIVING','WEDDING_AND_PARTY','CLOETHES_AND_SHOES',
]
但我需要像这样使用它
[
“礼物”、“家居与生活”、“婚礼与派对”、“衣服和鞋子”
]
所以我需要更改每个字符串。任何想法?
解决方案
有许多不同的方法可以做到这一点。基本上,您从以下开始:
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]
推荐阅读
- asp.net - Asp.net 页面优化
- c# - 从方法返回更多继承的通用类?
- python - 程序应该要求将物品放入购物清单。如果输入为'0'程序应该停止,打印购物清单的内容
- javascript - $(document).ready 后功能未完全完成
- sql - SQL 视图很慢。你看有什么问题是视图
- python - 统计中的固定效应是什么意思?
- python - [None]* 在 python 中是什么意思
- python - 无法安装 pip install thesaurus python 3.7.4
- php - 如何以这种格式显示时间?
- ajax - 如何使用 laravel 中的选择框过滤数据