假设我们有一个名字设置为“Ben Bright”。我想输出给用户“BB”,每个单词的第一个字符。我尝试了split()
方法,但我用dart失败了。
String getInitials(bank_account_name) {
List<String> names = bank_account_name.split(" ");
String initials;
for (var i = 0; i < names.length; i++) {
initials = '${names[i]}';
}
return initials;
}
字符串
8条答案
按热度按时间3bygqnnd1#
请允许我给予一个比前面提到的更简短的解决办法:
字符串
take(2)
部分确保我们最多只能使用两个字母。编辑(2021年10月7日):
或者,如果我们必须能够处理单词之间的多个空格,我们可以这样做(感谢@StackUnderflow的通知):
型
请注意,与原始解决方案相比,
split
需要RegExp(' +')
。ngynwnxp2#
只需稍做修改,因为您只需要第一个字母
字符串
编辑:
num_words
的值以打印这些单词的首字母。“bank_account_name
是一个0字母的单词,则返回一个空字符串bank_account_name
包含的单词少于num_words
,请打印bank_account_name
中所有单词的首字母。rqcrx0a63#
c8ib6hqw4#
一个更通用的解决方案可以在下面找到。它可以处理空字符串,单个单词字符串以及预期字数少于实际字数的情况:
字符串
编辑:
实际上,我在我的项目中没有图像的
CircleAvatar
s中使用了这个。atmip9wb5#
我使用CopsOnRoad解决方案,但我得到了以下错误。
RangeError(index):无效值:仅有效值为0:1
所以我修改了一下
字符串
如果你感兴趣的话,这里有一些测试
型
gxwragnw6#
字符串
sxpgvts37#
On Nov,2022使用Regex的工作解决方案:
字符串
vdgimpew8#
字符串