You need to enable JavaScript to run this app. Pharo 9 Smalltalk中按起止位置截取字符串子串的方法查询
优惠活动
大模型
产品
解决方案
定价
更多

Pharo 9 Smalltalk中按起止位置截取字符串子串的方法查询

Pharo 9 字符串截取子串方法

Pharo 9 的 String 类原生支持单消息实现按起止位置截取子串,你之前尝试的方法名有误,正确的方法是 copyFrom:to:。

方法说明

  • copyFrom: 起始索引 to: 结束索引:传入1-based的起止位置,直接返回对应区间的子串,Smalltalk中所有序列类型的索引默认都从1开始计数。
  • 如果需要按「起始位置+长度」的逻辑截取,直接通过起始位置推导结束位置即可:结束索引 = 起始索引 + 长度 - 1。

示例代码

对应你给出的'abcdefg'截取'cde'的需求:

str := 'abcdefg'.
"直接传入起止位置3到5,返回'cde'"
str copyFrom: 3 to: 5.

"如果按起始位置+长度的逻辑实现,从第3位开始取3个字符"
start := 3.
length := 3.
str copyFrom: start to: start + length - 1.

补充说明

你之前使用的allButFirst:和allButLast:组合也能实现需求,但copyFrom:to:更适合灵活指定任意起止区间的场景,性能也和两步操作没有明显差异。


内容的提问来源于stack exchange,提问作者cts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 19:33:01