我试图从 wirteStream 中取回我的brakets。遗憾的是,writeStream在括号之前和之后设置了两个标点符号(撇号)。
有人可以帮助我吗?我在 printOn 的类String中找到了这个错误,主要是在 storeOn 中。
你有想法解决它吗?我在RegEx上想过......但也许有人有另一种方法或解决方案。
| stream |
'()' printOn: (stream := '' writeStream).
stream contents = '()'.
此致 bartak。
答案 0 :(得分:3)
这是因为String
' #printOn:
明确调用#storeOn:
printOn: aStream
"Print inside string quotes, doubling inbedded quotes."
self storeOn: aStream
你可以反过来做到这一点:
(stream := '' writeStream) nextPutAll: '()'.
答案 1 :(得分:2)
那是因为String>>printOn:
会将“字符串打印为字符串”,即它将再次引用 。解决方案:请勿使用#printOn:
,而应使用Stream>>nextPutAll:
或Stream>>print:
。
<强>澄清强>:
#print
应该发送到流,而不是ByteString
:
'' writeStream print: '()'.