如何在颤动中将字符串列表转换为字符串?
How to convert String List to String in flutter?
我需要在飞镖中将 List<String>
转换成 String
。
我想从首选项中提取列表的值。我试过这个实现,但它只给我最后一个值。
Future<List<String>> services = SharedPrefSignUp.getSelectedServices();
services.then((onValue){
List<String>servicesList=onValue;
selectServicesText=servicesList.join(",");
});
您可以迭代列表并使用 StringBuffer 连接值
var list = ['one', 'two', 'three'];
var concatenate = StringBuffer();
list.forEach((item){
concatenate.write(item);
});
print(concatenate); // displays 'onetwothree'
}
您可以在这样的列表上使用 reduce 方法:
List<String> list = ['one', 'two', 'three'];
final string = list.reduce((value, element) => value + ',' + element);
// For your example:
List<String> servicesList = await SharedPrefSignUp.getSelectedServices();
selectServicesText = servicesList.reduce((value, element) => value + ',' + element);
如果你知道你有 List<String>
那么你可以使用 join()
flutter 提供的功能。
var list = ['one', 'two', 'three'];
var stringList = list.join("");
print(stringList); //Prints "onetwothree"
简单而简短。 ;)
你可以这样使用它:
List<String> servicesList = ["one", "Two", "Thee"];
print(servicesList.join(""));
print(list.toString().replaceAll('[', '').replaceAll(']',''))
以防万一有人想连接对象列表中的特定成员字符串:这里有一种方法可以做到这一点-
string commaSeparatedNames=return listOfObjectsWithNameAttribute
.map((item) => item.name)
.toList()
.join(",");
如果您只需要突出显示第一个单词,请使用此
import 'package:flutter/material.dart';
class TextHighlight extends StatefulWidget {
final String text;
TextHighlight({
required this.text,
});
@override
State<TextHighlight> createState() => _textHighlightState();
}
class _textHighlightState extends State<TextHighlight> {
String first = '';
List<String> allText = [];
List<String> newText = [];
@override
Widget build(BuildContext context) {
first = widget.text.split(' ').first;
allText = widget.text.split(' ')..removeAt(0);
return RichText(
text: TextSpan(
children: [
TextSpan(text: first+' ', style: TextStyle(color: Colors.green, fontSize: 17)),
TextSpan(text: allText.join(' ').toString(), style: TextStyle(color: Colors.black)),
],
),
);
}
}
我需要在飞镖中将 List<String>
转换成 String
。
我想从首选项中提取列表的值。我试过这个实现,但它只给我最后一个值。
Future<List<String>> services = SharedPrefSignUp.getSelectedServices();
services.then((onValue){
List<String>servicesList=onValue;
selectServicesText=servicesList.join(",");
});
您可以迭代列表并使用 StringBuffer 连接值
var list = ['one', 'two', 'three'];
var concatenate = StringBuffer();
list.forEach((item){
concatenate.write(item);
});
print(concatenate); // displays 'onetwothree'
}
您可以在这样的列表上使用 reduce 方法:
List<String> list = ['one', 'two', 'three'];
final string = list.reduce((value, element) => value + ',' + element);
// For your example:
List<String> servicesList = await SharedPrefSignUp.getSelectedServices();
selectServicesText = servicesList.reduce((value, element) => value + ',' + element);
如果你知道你有 List<String>
那么你可以使用 join()
flutter 提供的功能。
var list = ['one', 'two', 'three'];
var stringList = list.join("");
print(stringList); //Prints "onetwothree"
简单而简短。 ;)
你可以这样使用它:
List<String> servicesList = ["one", "Two", "Thee"];
print(servicesList.join(""));
print(list.toString().replaceAll('[', '').replaceAll(']',''))
以防万一有人想连接对象列表中的特定成员字符串:这里有一种方法可以做到这一点-
string commaSeparatedNames=return listOfObjectsWithNameAttribute
.map((item) => item.name)
.toList()
.join(",");
如果您只需要突出显示第一个单词,请使用此
import 'package:flutter/material.dart';
class TextHighlight extends StatefulWidget {
final String text;
TextHighlight({
required this.text,
});
@override
State<TextHighlight> createState() => _textHighlightState();
}
class _textHighlightState extends State<TextHighlight> {
String first = '';
List<String> allText = [];
List<String> newText = [];
@override
Widget build(BuildContext context) {
first = widget.text.split(' ').first;
allText = widget.text.split(' ')..removeAt(0);
return RichText(
text: TextSpan(
children: [
TextSpan(text: first+' ', style: TextStyle(color: Colors.green, fontSize: 17)),
TextSpan(text: allText.join(' ').toString(), style: TextStyle(color: Colors.black)),
],
),
);
}
}