Flutter how to change the first letter capital in all of this “Hello print my Name”; change this to “Hello Print My Name”;
#flutter#api
Answer
Solution
To capitalize the first letter of each word in a string.
Method 1: Using split() and join()
dartString capitalizeEachWord(String text) { if (text.isEmpty) return text; return text.split(' ').map((word) { if (word.isEmpty) return word; return word[0].toUpperCase() + word.substring(1).toLowerCase(); }).join(' '); } void main() { String input = "Hello print my Name"; String output = capitalizeEachWord(input); print(output); // Hello Print My Name }
Method 2: Using RegExp (Regular Expression)
dartString capitalizeEachWord(String text) { return text.replaceAllMapped( RegExp(r'\b\w'), (match) => match.group(0)!.toUpperCase(), ); } void main() { String input = "Hello print my Name"; String output = capitalizeEachWord(input); print(output); // Hello Print My Name }
Method 3: Extension Method
dartextension StringExtension on String { String capitalizeEachWord() { if (isEmpty) return this; return split(' ').map((word) { if (word.isEmpty) return word; return word[0].toUpperCase() + word.substring(1).toLowerCase(); }).join(' '); } } void main() { String input = "Hello print my Name"; print(input.capitalizeEachWord()); // Hello Print My Name }
Method 4: Using intl Package (Title Case)
yaml# pubspec.yaml dependencies: intl: ^0.18.0
dartimport 'package:intl/intl.dart'; String toTitleCase(String text) { return toBeginningOfSentenceCase(text) ?? text; } void main() { String input = "hello print my name"; print(toTitleCase(input)); // Hello print my name (only first word) // For all words, use split String allWords = input.split(' ').map((word) { return toBeginningOfSentenceCase(word) ?? word; }).join(' '); print(allWords); // Hello Print My Name }
Method 5: Handling Edge Cases
dartString capitalizeEachWord(String text) { if (text.isEmpty) return text; return text.split(' ').map((word) { if (word.isEmpty) return word; // Handle single character words if (word.length == 1) return word.toUpperCase(); // Capitalize first letter, lowercase rest return word[0].toUpperCase() + word.substring(1).toLowerCase(); }).join(' '); } void main() { print(capitalizeEachWord("Hello print my Name")); // Hello Print My Name print(capitalizeEachWord("i love dart programming")); // I Love Dart Programming print(capitalizeEachWord("")); // (empty string) print(capitalizeEachWord("a b c")); // A B C }
Complete Widget Example
dartclass TextCapitalizeWidget extends StatefulWidget { _TextCapitalizeWidgetState createState() => _TextCapitalizeWidgetState(); } class _TextCapitalizeWidgetState extends State<TextCapitalizeWidget> { final TextEditingController _controller = TextEditingController(); String _output = ''; void _capitalize() { setState(() { _output = _controller.text.split(' ').map((word) { if (word.isEmpty) return word; return word[0].toUpperCase() + word.substring(1).toLowerCase(); }).join(' '); }); } Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text('Capitalize Each Word')), body: Padding( padding: EdgeInsets.all(16), child: Column( children: [ TextField( controller: _controller, decoration: InputDecoration( labelText: 'Enter text', hintText: 'Hello print my Name', ), ), SizedBox(height: 16), ElevatedButton( onPressed: _capitalize, child: Text('Capitalize Each Word'), ), SizedBox(height: 16), Text( 'Output: $_output', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), ), ], ), ), ); } }
Comparison of Methods
| Method | Pros | Cons |
|---|---|---|
| split() and join() | Simple, readable | Multiple iterations |
| RegExp | Concise, powerful | Harder to understand |
| Extension | Reusable, clean syntax | Requires extension definition |
| intl package | Locale-aware | Extra dependency |
Expected Output
textInput: "Hello print my Name" Output: "Hello Print My Name" Input: "i love dart programming" Output: "I Love Dart Programming" Input: "this is a test" Output: "This Is A Test"
Key Concepts
- split(' ') - Splits string into words
- map() - Transforms each word
- toUpperCase() - Converts to uppercase
- substring(1) - Gets rest of word (from index 1)
- toLowerCase() - Converts to lowercase
- join(' ') - Joins words back with spaces