以下Mathematica函数f创建一个长度为n的空格字符串。
f[n_]:=Fold[StringJoin,"",Array[" "&,n]]
创建此功能必须有多种选择。
你会怎么做?
答案 0 :(得分:10)
f[n_] := StringJoin @ ConstantArray[" ", n]
编辑,因为@与@@一样惯用,而且速度要快一些(感谢Mr.Wizard进行基准测试),并且我更新了解决方案。
答案 1 :(得分:5)
f[n_] := FromCharacterCode[ConstantArray[32, {n}]]
顺便说一下:你应该知道faq中这类问题是不受欢迎的:
我不应该在这里问什么样的问题?
你应该只问实际, 基于实际的问题 你遇到的问题。健谈的, 开放式问题减少了 我们网站的用处和推动其他 首页上的问题。至 防止你的问题 标记并可能删除,避免 问主观问题......
1. every answer is equally valid: “What’s your favorite ______?”
如果问题已经结束,请不要感到惊讶。
答案 2 :(得分:3)
f[n_] := StringJoin[Table[" ", {n}]]
答案 3 :(得分:2)
Spacer
和Invisible
对于创建空格也很有用,在指定空间大小方面存在差异。
答案 4 :(得分:2)
f = ConstantArray[" ", #] <> "" &;
这大约是Thies Heidecke的功能的两倍,但不及Sjoerd的快。
对于较大的n
,较长的初始字符串很有帮助。这比Sjoerd n > 10000
:
f2ss = " "~ConstantArray~499 <> "";
f2[n_ /; n < 500] := StringTake[f2ss, n]
f2[n_ /; n < 5000] := StringTake[ConstantArray[" ", ⌈n/10⌉] <> "", n]
f2[n_] := StringTake[ConstantArray[f2@400, ⌈n/400⌉] <> "", n]