在 Pharo smalltalk 中谈论一段字符串

cts*_*cts 5 smalltalk pharo

我有一个字符串,我希望能够从它的中间取出一个子字符串。例如,对于字符串 'abcdefg' 我想得到 'cde'(但确切的开始和停止可能是任意的)。我已经找到allButFirst:allButLast:发送消息,因此我可以分两步完成,例如

str := 'abcdefg'
(str allButFirst: 2) allButLast: 2
Run Code Online (Sandbox Code Playgroud)

但我期待有一条消息。我也尝试过使用from:to:(这对我来说很天真),但这不适用于 string 类。

Pharo 9 Smalltalk 中是否有一条消息可以获取子字符串的开始和停止或开始和长度?

Uko*_*Uko 8

您可以使用

'abcdefg' copyFrom: 3 to: 5
Run Code Online (Sandbox Code Playgroud)

并得到cde

这是一个更重要的建议:

您可以转到Main Menu -> Tool -> Finder。然后在 Finder 窗口中从选择器搜索切换到示例。然后在搜索栏中输入

'abcdefg' . 3 . 5 . 'cde'
Run Code Online (Sandbox Code Playgroud)

这些是搜索的“4 个元素”。第一个是接收者,最后一个是预期结果,中间元素将用作参数。因此,如果有任何方法可以满足您的期望,您将在结果中看到。

  • 这是关于搜索的一个非常好的提示,不知道您可以搜索示例! (2认同)