【问题标题】:How do I concatenate combinations of letters and numbers in APL?如何在 APL 中连接字母和数字的组合?
【发布时间】:2019-05-06 00:41:14
【问题描述】:

我在 Dyalog 17 中,想生成唯一名称以用于其图形对象库。因此,例如,我有字母'l' 并想获取数字1,将其转换为字符,然后将两者连接在一起形成'l1'。这在其他语言中是如此微不足道的东西,但我找不到解释如何在 APL 中执行此操作的文档。感谢您的帮助!

【问题讨论】:

    标签: string concatenation number-formatting apl dyalog


    【解决方案1】:

    我在 Mainframe 中的 APL2 上,所以我的答案可能不完全符合您的要求,但我会这样做:

    ∊⍕¨'L',1
    

    所以首先连接字母和数字。然后 FORMAT EACH 生成一个字符标量向量。最后,ENLIST 生成一个简单的向量。

    这是对 SteveH 回复的一个简单概括。更通用的是它处理输入字符串(而不是标量)并且无论是数字还是字母在前,都同样有效。

    【讨论】:

      【解决方案2】:

      要将字母 'l' 连接到数字 1 以形成字符 'l1',请执行以下操作:

      'l',⍕1
      

      【讨论】:

      • 确实是对的,对单例也有好处,不过你也可以使用系统功能FMT,非常强大的格式化和修饰数字为文本。请参阅下面的答案。
      【解决方案3】:

      这里可以使用系统函数⎕FMT。例如:

             'P<I>ZI7' ⎕FMT ⍳10 
      I000000
      I000001
      I000002
      I000003
      I000004
      I000005
      I000006
      I000007
      I000008
      I000009
      

      格式字符串指定将数字格式化为整数,宽度为7,零填充,字母'I'的左正装饰。

      【讨论】:

      • 需要注意的是⎕FMTalways返回一个矩阵,这意味着像'abc',⎕FMT 123这样简单的东西是行不通的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 2021-01-14
      • 2022-11-04
      相关资源
      最近更新 更多