我已经用我的逻辑创建了一个字符串扩展.

我在堆栈溢出中判断了以前提出的问题,但在这里我想实现我的代码,而不是遵循其他逻辑……

这是我的努力

extension StringExtension on String {
  String capitalize() {
    //to capitalize first letter of string to uppercase
    if(trim().isEmpty)
      return '';
    return "${this[0].toUpperCase()}${this.substring(1)}";
  }


String capitalizeEachWord(){
// looking for good code
}


  String removeExtraSpaces() {
    //to remove all extra spaces between words
    if(trim().isEmpty)
      return '';
    return trim().replaceAll(RegExp(' +'), ' ');
  }



}

这是我的空Main()

String str='  i   love  flutter   ';
print(str.removeExtraSpaces().capitalizeEachWord());
// want output : I Love Flutter

推荐答案

要将每个单词大写,请遍历它们,并将第一个字母大写,然后添加单词的其余部分.你可以用split的方法做到这一点.其实现如下所示:

extension Capitalize on String {
  String capitalize() {
    if (trim().isNotEmpty) {
      final words = removeExtraSpaces()
        .split(' ')
        .map((e) => e[0].toUpperCase() + (e.length > 1 ? e.substring(1) : ''))
        .toList();
      return words.join(' ');
    }
    else return this;
  }
  String removeExtraSpaces() {
    if(trim().isEmpty) return '';
    return trim().replaceAll(RegExp(' +'), ' ');
  }
}

void main() {
  final str = 'i    love   flutter    ';
  print(str.capitalize());
}

Flutter相关问答推荐

如何将图像从顶部和底部半向外设置为飘动

如何在Ffltter Chrome应用程序中使用webview_fltter_web显示自定义html而不是外部uri?

FCM通知显示两次通知(&A)

IsScrollable为True时如何删除Flutter 选项卡栏左侧填充

如何使页面浏览量达到活动页面所要求的高度?

Flutter /dart 列表.第一个子类列表中的Where()错误

如何从RealmResults获取Flutter Flutter 流?

轻松本地化包翻译在底部导航栏项目标签Flutter 翼dart 中不起作用

Android工作室Flutter 热重新加载更新后不工作

Flutter中的编译时间常量方法

将自定义容器附加到屏幕底部

如何在flutter中加载并显示adx锚定的自适应广告?

创建混合 TextWidget 和 TextFieldWidget

如何使用Riverpod提供程序正确构建搜索栏?

Flutter开发中,如何通过'nfc_manager'插件在Android设备上避免默认的New Tag Scanned弹出窗口?

Flutter 中的 Provider 不会在第一次构建 App 时返回

Flutter - 展开图标无法正常工作

你如何在 Flutter 中组合两个数组?

如何修复 ICU Lexing 错误:Flutter 中的意外字符

如何在Flutter 中根据其父小部件高度设置图标按钮飞溅半径