145

他の文字の大文字と小文字を変更せずに、文字列の最初の文字を大文字にするにはどうすればよいですか?

たとえば、「これは文字列です」は「これは文字列です」となるはずです。

4

32 に答える 32

179

これをどこかにコピーします:

extension StringCasingExtension on String {
  String toCapitalized() => length > 0 ?'${this[0].toUpperCase()}${substring(1).toLowerCase()}':'';
  String toTitleCase() => replaceAll(RegExp(' +'), ' ').split(' ').map((str) => str.toCapitalized()).join(' ');
}

使用法:

// import StringCasingExtension

final helloWorld = 'hello world'.toCapitalized(); // 'Hello world'
final helloWorld = 'hello world'.toUpperCase(); // 'HELLO WORLD'
final helloWorldCap = 'hello world'.toTitleCase(); // 'Hello World'
于 2015-04-14T13:47:30.677 に答える
62
void main() {
  print(capitalize("this is a string"));
  // displays "This is a string"
}

String capitalize(String s) => s[0].toUpperCase() + s.substring(1);

DartPad で実行されているこのスニペットを参照してください: https://dartpad.dartlang.org/c8ffb8995abe259e9643

于 2015-04-14T13:48:05.093 に答える
4

短い表記法も使用して、null および空の文字列のケースを確認するには、次のようにします。

  String capitalizeFirstLetter(String s) =>
  (s?.isNotEmpty ?? false) ? '${s[0].toUpperCase()}${s.substring(1)}' : s;
于 2018-12-03T17:05:37.810 に答える
3

奇妙なことに、これは最初から dart では利用できません。以下は a を大文字にする拡張Stringです:

extension StringExtension on String {
  String capitalized() {
    if (this.isEmpty) return this;
    return this[0].toUpperCase() + this.substring(1);
  }
}

最初に が空でないことを確認しString、最初の文字を大文字にして残りを追加します

使用法:

import "path/to/extension/string_extension_file_name.dart";

var capitalizedString = '${'alexander'.capitalized()} ${'hamilton, my name is'.capitalized()} ${'alexander'.capitalized()} ${'hamilton'.capitalized()}');
// Print result: "Alexander Hamilton, my name is Alexander Hamilton"
于 2020-08-13T20:11:44.277 に答える
3

文字列が null または空かどうかも確認する必要があります。

String capitalize(String input) {
  if (input == null) {
    throw new ArgumentError("string: $input");
  }
  if (input.length == 0) {
    return input;
  }
  return input[0].toUpperCase() + input.substring(1);
}
于 2017-07-12T01:05:38.397 に答える
1
var orig = "this is a string";
var changed = orig.substring(0, 1).toUpperCase + orig.substring(1)
于 2015-04-14T13:51:40.577 に答える
0

これを使用できます:

extension EasyString on String {
  String toCapitalCase() {
   var lowerCased = this.toLowerCase();
   return lowerCased[0].toUpperCase() + lowerCased.substring(1);
 }
} 
于 2021-06-09T04:22:14.993 に答える