web-dev-qa-db-fra.com

Comment mettre en majuscule la première lettre d'une chaîne en fléchette?

Comment mettre en majuscule le premier caractère d'une chaîne sans changer la casse des autres lettres?

Par exemple, "ceci est une chaîne" devrait donner "Ceci est une chaîne".

48
Kasper
main() {
  String s = 'this is a string';
  print('${s[0].toUpperCase()}${s.substring(1)}');
}
36
Günter Zöchbauer
void main() {
  print(capitalize("this is a string"));
  // displays "This is a string"
}

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

Voir cet extrait en cours d'exécution sur DartPad: https://dartpad.dartlang.org/c8ffb8995abe259e964

Alternativement, vous pouvez utiliser le package de chaînes , voir capitaliser .

29
Alexandre Ardhuin

L'analyse des sous-chaînes dans les autres réponses ne tient pas compte des variations locales. La fonction toBeginningOfSentenceCase () dans le intl/intl.Dart package gère la casse de phrase de base et le "i" en pointillé en turc et en azéri.

import 'package:intl/intl.Dart';
...
String sentence = toBeginningOfSentenceCase('this is a string'); // This is a string
6
Jenn

Vous devez également vérifier si la chaîne est nulle ou vide.

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);
}
2
Rishi Dua

Pour vérifier les cas de chaîne vide et vide, en utilisant également les courtes notations:

  String capitalizeFirstLetter(String s) =>
  (s?.isNotEmpty ?? false) ? '${s[0].toUpperCase()}${s.substring(1)}' : s;
1
E. Sun
var orig = "this is a string";
var changed = orig.substring(0, 1).toUpperCase + orig.substring(1)
1
Rob Mulder
void allWordsCapitilize (String str) {
    return str.toLowerCase().split(' ').map((Word) {
      String leftText = (Word.length > 1) ? Word.substring(1, Word.length) : '';
      return Word[0].toUpperCase() + leftText;
    }).join(' ');
}
allWordsCapitilize('THIS IS A TEST'); //This Is A Test
1

Il existe un package utils qui couvre cette fonction. Il a quelques autres méthodes Nice pour fonctionner sur des chaînes.

Installez-le avec:

dependencies:
  basic_utils: ^1.2.0

Utilisation:

String capitalized = StringUtils.capitalize("helloworld");

Github:

https://github.com/Ephenodrom/Dart-Basic-Utils

0
Ephenodrom

Vous pouvez utiliser ce package en flutter ReCase Il vous donne diverses fonctionnalités de conversion de cas comme:

  • snake_case
  • dot.case
  • chemin/cas
  • param-case
  • PascalCase
  • En-tête-cas
  • Cas de titre
  • affaire de chameau
  • Cas de phrase
  • CONSTANT_CASE

    String sample = 'hello world';
    
    print(sample.sentenceCase); // Prints 'Hello world'
    
0
Mahi

Certaines des autres réponses les plus populaires ne semblent pas gérer null et ''. Je préfère ne pas avoir à gérer ces situations dans le code client, je veux juste un String en retour quoi qu'il arrive - même si cela signifie un vide en cas de null.

String upperCaseFirst(String s) => (s??'').length<1 ? '' : s[0].toUpperCase() + s.substring(1)
0
Magnus W

Ce code fonctionne pour moi.

   String name = 'amina';    print(${name[0].toUpperCase()}${name.substring(1).toLowerCase()});
0
Amina Bekir