【发布时间】:2019-05-06 00:41:14
【问题描述】:
我在 Dyalog 17 中,想生成唯一名称以用于其图形对象库。因此,例如,我有字母'l' 并想获取数字1,将其转换为字符,然后将两者连接在一起形成'l1'。这在其他语言中是如此微不足道的东西,但我找不到解释如何在 APL 中执行此操作的文档。感谢您的帮助!
【问题讨论】:
标签: string concatenation number-formatting apl dyalog
我在 Dyalog 17 中,想生成唯一名称以用于其图形对象库。因此,例如,我有字母'l' 并想获取数字1,将其转换为字符,然后将两者连接在一起形成'l1'。这在其他语言中是如此微不足道的东西,但我找不到解释如何在 APL 中执行此操作的文档。感谢您的帮助!
【问题讨论】:
标签: string concatenation number-formatting apl dyalog
我在 Mainframe 中的 APL2 上,所以我的答案可能不完全符合您的要求,但我会这样做:
∊⍕¨'L',1
所以首先连接字母和数字。然后 FORMAT EACH 生成一个字符标量向量。最后,ENLIST 生成一个简单的向量。
这是对 SteveH 回复的一个简单概括。更通用的是它处理输入字符串(而不是标量)并且无论是数字还是字母在前,都同样有效。
【讨论】:
要将字母 'l' 连接到数字 1 以形成字符 'l1',请执行以下操作:
'l',⍕1
【讨论】:
这里可以使用系统函数⎕FMT。例如:
'P<I>ZI7' ⎕FMT ⍳10
I000000
I000001
I000002
I000003
I000004
I000005
I000006
I000007
I000008
I000009
格式字符串指定将数字格式化为整数,宽度为7,零填充,字母'I'的左正装饰。
【讨论】:
⎕FMTalways返回一个矩阵,这意味着像'abc',⎕FMT 123这样简单的东西是行不通的。