Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何将字符串数组转换为D中的字符串?_Arrays_String_D - Fatal编程技术网

Arrays 如何将字符串数组转换为D中的字符串?

Arrays 如何将字符串数组转换为D中的字符串?,arrays,string,d,Arrays,String,D,我得到了如下字符串数组: string [] foo = ["zxc", "asd", "qwe"]; 我需要从它们创建字符串。比如: “zxc”、“asd”、“qwe”(是的,每个元素都需要被引用并用逗号分隔,但它应该是字符串,而不是字符串数组 我怎样才能做到功能性风格 import std.algorithm, std.array, std.string; string[] foo = ["zxc", "asd", "qwe"]; string str = foo.map!(a =>

我得到了如下字符串数组:

string [] foo = ["zxc", "asd", "qwe"];
我需要从它们创建
字符串。比如:
“zxc”、“asd”、“qwe”
(是的,每个元素都需要被引用并用逗号分隔,但它应该是字符串,而不是字符串数组

我怎样才能做到功能性风格

import std.algorithm, std.array, std.string;
string[] foo = ["zxc", "asd", "qwe"];
string str = foo.map!(a => format(`"%s"`, a)).join(", ");
assert(str == `"zxc", "asd", "qwe"`);
获取一个lambda,该lambda将该范围内的一个元素转换为其他元素,并返回一个惰性范围,其中每个元素都是从原始范围向lambda函数传递元素的结果。在这种情况下,lambda获取输入字符串并创建一个新字符串,该字符串周围有引号,因此传递
foo到它是一系列带引号的
字符串

然后获取一个范围并急切地将它的每个元素与分隔每个元素的给定分隔符连接起来,并返回一个新数组,因为它的范围是
string
s,它返回一个
string
。因此,通过给它调用
map
”的结果
对于分隔符,您的字符串由引用的原始字符串组成,并用逗号分隔


将执行与join相同的操作,不同的是它会导致一个惰性范围而不是数组。

或者,使用std.string.format 您的格式说明符应该如下所示: 自动连接字符串=格式(“%(\%s\,%”),字符串数组)


这是未经测试的,因为我在移动设备上,但它与此类似!

如果使用反勾引号或原始字符串,则不需要转义内部引号。
格式(r“%(“%s”,%)”,stringarray)