【发布时间】:2019-10-01 00:20:14
【问题描述】:
我正在尝试使用以下块从发送的字符串中修剪前导空格:
trimleading := [ :str|
ch := (str byteAt: 1). "get first character: ERROR HERE"
ret := str copyFrom: 1. "make a copy of sent string"
[ch = ' '] whileTrue: [ "while first char is space"
ret := (ret copyFrom: 2). "copy from 2nd char"
ch := ret byteAt: 1. "again test first char"
].
ret "value is modified string"
].
('>>',(trimleading value: ' this is a test '),'<<') displayNl.
它可以正常工作,但不会从发送的字符串中删除前导空格。返回值与发送的字符串相同。
显然,第一个字符 ch 没有被拾取。 at: 也不能代替 byteAt: 工作。
问题出在哪里,如何解决?谢谢。
【问题讨论】:
标签: string trim smalltalk gnu-smalltalk