#json #string #flutter
#json #строка #flutter
Вопрос:
Я пытаюсь преобразовать текст длинной строки в массив, в dart есть несколько методов в виде String.split, но это не работает во Flutter, есть ли какое-либо решение, с помощью которого я могу преобразовать строку с пробелами в массив, а затем использовать массив в Listview
Комментарии:
1.
split
работает во flutter — в конце концов, он использует dart2. Спасибо, возможно, я забыл добавить пакет преобразования dart в свой код
3. Преобразовать?
split()
этоString
метод, какое отношение к нему имеет Convert?4. О, я вижу это, я думал, это из класса convert : (
Ответ №1:
После использования String.split
для создания List
(эквивалент массива в Dart), мы имеем List<String>
. Если вы хотите использовать List<String>
внутри ListView, вам понадобится Widget
который отображает текст. Вы можете просто использовать текстовый виджет.
Следующие функции могут помочь вам сделать это:
String.split
: РазделитьString
для созданияList
List<String>.map
: СопоставьтеString
с виджетомIterable<Widget>.toList
: ПреобразоватьMap
обратно вList
Ниже приведен краткий автономный пример:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
static const String example = 'The quick brown fox jumps over the lazy dog';
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: ListView(
children: example
.split(' ') // split the text into an array
.map((String text) => Text(text)) // put the text inside a widget
.toList(), // convert the iterable to a list
)
),
);
}
}
Комментарии:
1. Спасибо, я постараюсь, чтобы это было немного короче и казалось проще, я написал это немного по-другому
2. статический список<Строка> Калорий=name.split(» «); конечные продукты =List<Строка>.generate(15,(i)=> «${Myarray[i]} ${Калории[i]}»); тело: ListView.builder( количество элементов: продукты. длина, itemBuilder: (контекст, индекс){ возвращает ListTile( заголовок: Текст(‘${foods[index]}’),
3. Возможно, вы захотите добавить код к своему вопросу, чтобы уточнить свою цель и то, что вы пробовали!
4. Хорошо, большое вам спасибо, я не знал о возможности добавления кода в вопрос, потому что я здесь новичок, я постараюсь добавить в будущем
5. Вы могли бы использовать регулярное выражение и allMatches для разделения его на каждые 2 символа. Или простой цикл for. Я бы посоветовал вам поискать в Google / что угодно для какого-либо решения на основе регулярных выражений. Если вы не можете найти что-либо, скажите мне еще раз @JohnSmithly .
Ответ №2:
Для тех, кто хочет преобразовать каждый символ строки в элемент списка, мы можем
String username = "John Doe";
List<String> searchKeywords = List<String>.generate(
username.length,
(index) => username[index]); // ['J','o','h','n',' ','D','o','e']
Кроме того, вы можете удалить пробелы с помощью метода trim()
Ответ №3:
List<String> list = "Hello Word".split("");
print(list);
//[H,e,l,l,o, ,W,o,r,l,d]
List<String> list = "Hello World".split(" ");
print(list);
//["Hello", "World"]