Reputation: 111
I'm getting the following String
from an API:
"[4:00 PM - 5:00 PM, 5:00 PM - 6:00 PM, 6:00 PM - 7:00 PM, 7:00 PM - 8:00 PM, 10:00 AM - 11:00 AM, 11:00 AM - 12:00 PM, 12:00 PM - 1:00 PM, 1:00 PM - 2:00 PM, 2:00 PM - 3:00 PM]"
I want to convert this String
to a List
.
How to convert it?
Upvotes: 1
Views: 321
Reputation: 2218
this works
String data =
"[4:00 PM - 5:00 PM, 5:00 PM - 6:00 PM, 6:00 PM - 7:00 PM, 7:00 PM - 8:00 PM, 10:00 AM - 11:00 AM, 11:00 AM - 12:00 PM, 12:00 PM - 1:00 PM, 1:00 PM - 2:00 PM, 2:00 PM - 3:00 PM]";
List<String> dataList = data.replaceAll('[', '').replaceAll(']', '').split(',');
Upvotes: 2
Reputation: 304
Code :
void main() {
String mylist = "[4:00 PM - 5:00 PM, 5:00 PM - 6:00 PM, 6:00 PM - 7:00 PM, 7:00 PM - 8:00 PM, 10:00 AM - 11:00 AM, 11:00 AM - 12:00 PM, 12:00 PM - 1:00 PM, 1:00 PM - 2:00 PM, 2:00 PM - 3:00 PM]";
mylist = mylist.replaceAll('[', '');
mylist = mylist.replaceAll(']', '');
List<String> newList = mylist.split(',');
print(newList[0]);
}
Output :
4:00 PM - 5:00 PM
Upvotes: 2
Reputation: 65
void main() {
String list = "[4:00 PM - 5:00 PM, 5:00 PM - 6:00 PM,"
" 6:00 PM - 7:00 PM, 7:00 PM - 8:00 PM,"
" 10:00 AM - 11:00 AM, 11:00 AM - 12:00 PM,"
" 12:00 PM - 1:00 PM, 1:00 PM - 2:00 PM, 2:00 PM - 3:00 PM]";
List<String> out = [];
String batch = "";
for (String s in list.split("")) {
if (s == "[" || s == "]") continue;
if (s == ",") {
out.add(batch);
batch = "";
} else
batch += s;
}
print(out);
}
Output -> [4:00 PM - 5:00 PM, 5:00 PM - 6:00 PM, 6:00 PM - 7:00 PM, 7:00 PM - 8:00 PM, 10:00 AM - 11:00 AM, 11:00 AM - 12:00 PM, 12:00 PM - 1:00 PM, 1:00 PM - 2:00 PM]
Hope this helps! 😋
Upvotes: 2
Reputation: 7660
You can use split() method in Dart. It will look like this:
void main() {
String times = "4:00 PM - 5:00 PM, 5:00 PM - 6:00 PM, 6:00 PM - 7:00 PM, 7:00 PM - 8:00 PM, 10:00 AM - 11:00 AM, 11:00 AM - 12:00 PM, 12:00 PM - 1:00 PM, 1:00 PM - 2:00 PM, 2:00 PM - 3:00 PM";
// Splitting the string
// across comma
print(times.split(","));
List<String> timesList = times.split(",");
}
// Output:
//[4:00 PM - 5:00 PM, 5:00 PM - 6:00 PM, 6:00 PM - 7:00 PM, 7:00 PM - 8:00 PM, 10:00 AM - 11:00 AM, 11:00 AM - 12:00 PM, 12:00 PM - 1:00 PM, 1:00 PM - 2:00 PM, 2:00 PM - 3:00 PM]
Upvotes: 0