4

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

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

IE。

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.

我可以根据任何字母或符号分割一行,但我不知道换行符是什么。

好的,这就是我如何根据逗号拆分字符串,但我不能根据新行来做。

4

5 回答 5

5

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

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

string findTokens: String cr, String lf.

由于您现在提到您正在使用 VisualWorks,因此除非您加载了“squeak-accessing”类别(除非您使用的是 Seaside,否则您可能不会这样做),否则上述内容将不起作用。您可以改用正则表达式匹配:

'foo
bar' allRegexMatches: '[^', (String with: Character cr), ']+'
于 2009-10-21T02:11:38.593 回答
1

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

|数组 | 数组 := mystring findTokens: 字符串 cr

其中 String cr 是回车符

于 2009-10-21T01:49:28.220 回答
0

本问题所述:Character cr

于 2009-10-21T01:46:50.187 回答
0

您可以发送 String>>withCRs 消息,然后用反斜杠分隔回车,因此——

string := 'smalltalk 很有趣。\ 好吧,不是。' 与 CR。

于 2009-10-23T10:37:55.307 回答
0

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

于 2009-11-11T16:51:22.397 回答