在 Pharo smalltalk 中谈论一段字符串

Talking a slice of a string in Pharo smalltalk

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

str := 'abcdefg'
(str allButFirst: 2) allButLast: 2

但我原以为只有一条消息。我也尝试过使用 from:to: (这对我来说很天真),但这对字符串 class.

不起作用

Pharo 9 Smalltalk 中是否有一条消息会使用开始和停止或开始和长度来获取子字符串?

您可以使用

'abcdefg' copyFrom: 3 to: 5

得到cde.

还有一条更重要的建议:

您可以转到主菜单 -> 工具 -> Finder。然后在 Finder window 中从 selectors 搜索切换到 examples。然后在搜索栏输入

'abcdefg' . 3 . 5 . 'cde'

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