如何处理这样的字符串数据'Stephen Hawking Einstein'像这样'SH'



如何处理这样的字符串数据"斯蒂芬·霍金-爱因斯坦"像这样"SH"。

Text('Stephen Hawking Einstein')

在应用程序中的某个位置创建一个扩展。

extension MemberStringAbbreviation on String {
String abbreviation() {
var stringData = this;
if (stringData.isEmpty) return '';
var splitStringSpace = stringData.split(' ');
//Rule for a string of n letters.
if (splitStringSpace.length == 1) {
var firstWord = splitStringSpace[0];
//Rule to extract the first letter of the string.
if (firstWord.length == 1) {
return firstWord.toUpperCase();
}
//Rule for extracting the first two letters of a string.
if (firstWord.length > 1) {
return firstWord.substring(0, 2).toUpperCase();
}
return '';
}
//Rule for two or more n-letter words.
if (splitStringSpace.length >= 2) {
var firstWord = splitStringSpace[0].toUpperCase();
var secondWord = splitStringSpace[1].toUpperCase();
return '${firstWord[0]}${secondWord[0]}';
}
return '';
}
}

导入并使用扩展

Text('Stephen Hawking Einstein'.abbreviation());
Text('Stephen Hawking'.abbreviation());
Text('Stephen'.abbreviation());
Text('St'.abbreviation());
Text('S'.abbreviation());
Text('Stephen H'.abbreviation());
Text('S H'.abbreviation());

您可以用空格分隔字符串。像这样:

String name = 'Stephen Hawking Einstein';
String abbreviatedName = '';
for(int i = 0; i < name.split(' ').length; i++)
{
abbreviatedName += name.split(' ')[i][0];
}

Text窗口小部件中:

Text(
abbreviatedName,
)

最新更新