在 Dart 中创建一个 capitalize 方法

Creating a capitalize Method in Dart

我正在尝试在 dart 中创建一个方法,但是 运行 撞到了墙上。我在看 .toUpperCase();和 .toLowerCase();完成了。我尝试创建的方法是 .capitalize();

我想这样调用这个方法 字符串 hello = "WORLD".capitalize(); //世界

这是我目前的代码

String capitalize() {
return this.codeUnitAt(0).toUpperCase() + this.substring(1).toLowerCase();
}

When 运行ning String hello = "WORLD".capitalize();我收到以下错误

[38;5;124m[2015-6-4 11:37:13.011] Class 'String' has no instance method 'capitalize'.

NoSuchMethodError: method not found: 'capitalize'
Receiver: "WORLD"
Arguments: [][0m

我知道我可以调用类似 String capitalize(String s) => s[0].toUpperCase() + s.substring(1); 的函数,但更愿意保持字符串操作调用相同。

谢谢,感谢任何帮助:)

您不能随心所欲地扩展字符串 class。像这样使用它:

capitalize("WORLD");

是的,不像 JS,你不能只改变 Dart 中的任何 class。您只能扩展它。例如。您可以使用 capitalize 方法创建 MyString class。但我不认为你想要它。只需使用方法 capitalize

创建一些 StringUtils.dart

由于 dart 现在更普遍,pub.dartlang.org 上有更多可用的软件包。

我找到了一个很好的 dart 包,用于对字符串进行不同的操作。它还包含一个 capitalize 方法。

https://pub.dartlang.org/packages/basic_utils

只需添加依赖:

dependencies:
   basic_utils: ^1.0.3

用法:

StringUtils.capitalize("helloworld"); // helloworld => Helloworld

它还包含其他有用的方法:

  • camelCaseToUpperUnderscore
  • camelCaseToLowerUnderscore
  • 是 Ascii
  • isNullOrEmpty ...

如果这仍然是个问题,您可以简单地使用这个依赖项:

dependencies:
  text_tools: ^0.0.2

使用简单,举个例子:

//This will put the first letter in UpperCase, will print 'Name'
      print(TextTools.toUppercaseFirstLetter(text: 'name'));