如何删除字符串飞镖中不需要的字符

问题描述 投票:0回答:4

我混淆了 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',

如何做到这一点,我坚持这个转换,请添加您宝贵的重播

flutter dart dart-pub
4个回答
0
投票

首先找到所有

'
字符的索引:

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

0
投票

举三个例子:

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);
}

0
投票

试试下面的代码:

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];

0
投票

和上面的人不同的是,还有一种方法就是用正则表达式

我觉得这样更好。

 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
© www.soinside.com 2019 - 2024. All rights reserved.