Smalltalk,换行符

时间:2009-10-21 00:13:00

标签: tokenize smalltalk

有人知道smalltalk中字符串的换行符分隔符是什么?

我正在尝试将字符串拆分为单独的行,但我无法弄清楚smalltalk中的换行符是什么。

即。

string := 'smalltalk is 
           a lot of fun.
           ok, it's not.'

I need to split it in:
line1: smalltalk is
line2: a lot of fun.
line3: ok, it's not.

我可以根据任何字母或符号拆分一行,但我无法弄清楚换行符是什么。

好的,这就是我如何基于逗号分割字符串,但我不能基于新行来完成。

5 个答案:

答案 0 :(得分:3)

换行符分隔符通常是回车符,即Character cr,或其他提及的字符串String cr。如果您想支持所有标准换行格式,只需包括两个标准分隔符,例如:

string := 'smalltalk is
a lot of fun.'.

string findTokens: String cr, String lf.

由于您现在提到您正在使用VisualWorks,除非您加载了“吱吱声访问”类别(除非您使用Seaside,否则您可能不会这样做),上述操作将无效。您可以改为使用正则表达式匹配:

'foo
bar' allRegexMatches: '[^', (String with: Character cr), ']+'

答案 1 :(得分:1)

快速解决方案(我不知道它是否更好)是:

| array | array:= mystring findTokens:String cr

其中String cr是回车符号

答案 2 :(得分:0)

this question中所述:Character cr

答案 3 :(得分:0)

你可以发送字符串>> withCRs消息然后用反斜杠分隔回车符,因此 -

string:='smalltalk是\            多开心。\            好吧,不是。“ withCRs。

答案 4 :(得分:0)

当然取决于编码。可能是cr,lf或crlf。对于unicode,有一些额外的可能性。请参阅:pharo linesDo: