【发布时间】:2018-12-05 07:06:10
【问题描述】:
我是 Dart 编程语言的新手,任何人都可以帮助我找到 Dart 中可用的最佳字符串连接方法。
我只发现加号 (+) 运算符可以像其他编程语言一样连接字符串。
【问题讨论】:
我是 Dart 编程语言的新手,任何人都可以帮助我找到 Dart 中可用的最佳字符串连接方法。
我只发现加号 (+) 运算符可以像其他编程语言一样连接字符串。
【问题讨论】:
有 3 种连接字符串的方法
String a = 'a';
String b = 'b';
var c1 = a + b; // + operator
var c2 = '$a$b'; // string interpolation
var c3 = 'a' 'b'; // string literals separated only by whitespace are concatenated automatically
var c4 = 'abcdefgh abcdefgh abcdefgh abcdefgh'
'abcdefgh abcdefgh abcdefgh abcdefgh';
通常字符串插值优于+ 运算符。
还有StringBuffer 用于更复杂和高性能的字符串构建。
【讨论】:
Map<dynamic, String> 查找动态是枚举时,Dart 在 VSCode 中尖叫“不必要的字符串插值”,当我切换时到+ 红色下划线消失了,它不再对我大喊大叫了。
假设你有一个 Person 类。
class Person {
String name;
int age;
Person({String name, int age}) {
this.name = name;
this.age = age;
}
}
你想打印人物的描述。
var person = Person(name: 'Yogendra', age: 29);
在这里你可以像这样连接字符串
var personInfoString = '${person.name} is ${person.age} years old.';
print(personInfoString);
【讨论】:
如果你需要循环连接,我有这个:
var list = ['satu','dua','tiga'];
var kontan = StringBuffer();
list.forEach((item){
kontan.writeln(item);
});
konten = kontan.toString();
【讨论】:
writeAll:stackoverflow.com/a/68284916/2411667
最简单的方法
String get fullname {
var list = [firstName, lastName];
list.removeWhere((v) => v == null);
return list.join(" ");
}
【讨论】:
answer by Günter 涵盖了在 Dart 中如何连接两个字符串的大多数情况。
如果你有一个 Iterable 字符串,那么使用 writeAll 会更容易,因为这让你可以选择指定一个可选的分隔符
final list = <String>['first','second','third'];
final sb = StringBuffer();
sb.writeAll(list, ', ');
print(sb.toString());
这将返回
'第一,第二,第三'
【讨论】:
假设我们有两个字符串
字符串 a = '你好';
字符串 b = '世界';
字符串输出;
现在我们要连接这两个字符串
输出 = a + b;
打印(输出);
Hello World
【讨论】: