我得到的简单问题
|list string|
list:= #('ab' 'efghij' 'lmnopqrst'). "Ordered collection"
list do:[:each| "string with:each" i know this is not right how do i add items ].
我也尝试了溪流它让我回复了这个“有序的收藏品('ab''effij''lmnopqrst')”
我需要的只是一个
的文本'abc efghij lmnopqrst '
答案 0 :(得分:7)
在Pharo你可以做到
Character space join: list
如果join:不可用并且它应该运行良好,那么您可以使用流变体
String streamContents: [:stream|
list
do [:each| stream nextPutAll: each ]
separatedBy: [ stream nextPut: Character space ]
答案 1 :(得分:3)
Object
类定义了一条#asString
消息,内容为:
"Answer a string that represents the receiver."
所以,你可以这样做:
| aList aStringsList |
aList := #('ab' 'efghij' 'lmnopqrst'). "Array"
aStringsList := aList collect: [ :each | each asString ]
aStringsList
将成为Array
每个String
成员调用#asString
aList
的{{1}}。
如果您想在一个String
中连接所有这些内容,则可以使用集合的#inject:into:
方法而不是#collect:
:
aList inject: '' into: [ :text :each | text , each asString , ' ' ]
如果您打印出来,您将获得所需的'ab efghij lmnopqrst '
:)