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".
main() {
String s = 'this is a string';
print('${s[0].toUpperCase()}${s.substring(1)}');
}
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 .
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
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);
}
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;
var orig = "this is a string";
var changed = orig.substring(0, 1).toUpperCase + orig.substring(1)
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
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:
Vous pouvez utiliser ce package en flutter ReCase Il vous donne diverses fonctionnalités de conversion de cas comme:
CONSTANT_CASE
String sample = 'hello world';
print(sample.sentenceCase); // Prints 'Hello world'
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)
Ce code fonctionne pour moi.
String name = 'amina'; print(${name[0].toUpperCase()}${name.substring(1).toLowerCase()});