如何在颤动中将字符串列表转换为字符串?

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