我混淆了 dart 中的一些字符串转换。
for example = String Stringsample = "['2022-11-24', '2022-11-30']";
Stringsample 是 String,不是 List,所以我想在这个 String 中获取两个项目,怎么办,
Expecting output be like:
String str1 = '2022-11-24',
String str2 = '2022-11-30',
如何做到这一点,我坚持这个转换,请添加您宝贵的重播
首先找到所有
'
字符的索引:
String Stringsample = "['2022-11-24', '2022-11-30']";
List<int> indexes = [];
for (int i = 0; i < Stringsample.length; i++) {
if (Stringsample[i] == "'")
indexes.add(i);
}
print(indexes); // output : [1, 12, 15, 26]
然后你在每对之间得到
substrings
:
String str1 = Stringsample.substring(indexes[0]+1, indexes[1]);
String str2 = Stringsample.substring(indexes[2]+1, indexes[3]);
print(str1); // output : 2022-11-24
print(str2); // output : 2022-11-30
举三个例子:
import 'dart:convert';
void main() {
final String stringSample = "[\"2022-11-24\", \"2022-11-30\"]";
final List<dynamic> listDynamicSample = json.decode(stringSample);
final String str1 = listDynamicSample[0];
final String str2 = listDynamicSample[1];
print(str1);
print(str2);
}
import 'dart:convert';
void main() {
final String stringSample = "['2022-11-24', '2022-11-30']";
final List<dynamic> listDynamicSample = json.decode(stringSample.replaceAll("'", '"'));
final String str1 = listDynamicSample[0];
final String str2 = listDynamicSample[1];
print(str1);
print(str2);
}
void main() {
final String stringSample = "['2022-11-24', '2022-11-30']";
final List<String> listDynamicSample = stringSample.split("'");
final String str1 = listDynamicSample[1];
final String str2 = listDynamicSample[3];
print(str1);
print(str2);
}
试试下面的代码:
String Stringsample = "['2022-11-24', '2022-11-30']";
String modifiedString = "";
List<String> datesList = [];
modifiedString = Stringsample.substring(1, Stringsample.length - 1);
datesList = modifiedString.split(",").toList();
String str1 = datesList[0];
String str2 = datesList[1];
和上面的人不同的是,还有一种方法就是用正则表达式
我觉得这样更好。
String sample = "['2022-11-24', '2022-11-30']";
var test = sample.replaceAll(RegExp(r'''[\[\]'" ]'''), '').split(',');
String str1 = test[0];
String str2 = test[1];
// print(test); // [2022-11-24, 2022-11-30]
// print(str1); // 2022-11-24
// print(str2); // 2022-11-30