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
如何在Swift中应用带磅签名字符串中的空格?_Swift_String_Whitespace_Swift5 - Fatal编程技术网

如何在Swift中应用带磅签名字符串中的空格?

如何在Swift中应用带磅签名字符串中的空格?,swift,string,whitespace,swift5,Swift,String,Whitespace,Swift5,Swift 5提出了一种额外的新方法来声明字符串文字,即使用#符号(在开始和结束引号之前)来声明字符串,而不必担心反斜杠和引号 (参考资料:) 例如: let string1 = #"\ Hello World"# print(string1) // => \ Hello World let string2 = "Hello World #" print(string2) // => Hello World # let string3 = ##"#\#\ Hello World

Swift 5提出了一种额外的新方法来声明字符串文字,即使用
#
符号(在开始和结束引号之前)来声明字符串,而不必担心反斜杠和引号

(参考资料:)

例如:

let string1 = #"\ Hello World"#
print(string1) // => \ Hello World

let string2 = "Hello World #"
print(string2) // => Hello World #

let string3 = ##"#\#\ Hello World #\#\"##
print(string3) // => #\#\ Hello World #\#\
但是,当尝试使用磅符号声明包含空格的字符串时,它将不起作用。让我们考虑一下选项卡:

let tabString = #"Hello World\t#"#
print(tabString) // => Hello World\t#
我的预期结果是
helloworld
,但不是
helloworld\t

使用
#
声明时如何解决此类问题?

更新答案: 此时,您可以将其键入为
\\t

感谢@dan对此的评论





旧答案:

从逻辑上讲,
Hello World\t\
的结果似乎是合乎逻辑的,因为使用
声明字符串的目的是“字面上”将反斜杠作为反斜杠处理,这意味着“\t”将显示为
“\t”
,而不是

作为一种解决方法,您可以在此处将字符串中的空白插入为声明的字符串,而不使用井号:

let tabString = #"Hello World \#("\t")#"#
print(tabString) // => Hello World     #

请记住,在声明的字符串中插入时,应该在反斜杠(
\(“\t”)
后添加

你不能只做
\\t
打印(
“Hello World\\t”)不会产生所需的输出代码吗,这是正确的做法@AhmadF尽管上面的自我回答可以完成这项工作,但它使用字符串插值,速度非常慢。不会认为这是一个高质量的答案。