Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Smalltalk nextAlphaNumericWord是否存在于3.0中?_Smalltalk - Fatal编程技术网

Smalltalk nextAlphaNumericWord是否存在于3.0中?

Smalltalk nextAlphaNumericWord是否存在于3.0中?,smalltalk,Smalltalk,我正在努力完成以下教程: 但我无法让某些方法发挥作用(例如nextAlphaNumericWord)。2.0/3.0中是否存在这样或类似的内容 我这一点做得不错: [ tmpStream atEnd ] whileFalse: [ myStream nextPutAll: (tmpStream nextDelimited: Character space); nextPut: $ ]. 这不包括以下情况:“一、二、三、四”(空格) 我也试过: |tmpStream| myStream

我正在努力完成以下教程:

但我无法让某些方法发挥作用(例如nextAlphaNumericWord)。2.0/3.0中是否存在这样或类似的内容


我这一点做得不错:

[ tmpStream atEnd ] whileFalse: [ myStream nextPutAll: (tmpStream nextDelimited: Character space); nextPut: $ ].
这不包括以下情况:
“一、二、三、四”(空格)

我也试过:

    |tmpStream|
myStream := ReadWriteStream on: String new.
tmpStream := ReadStream on: inString.

[ tmpStream atEnd ] whileFalse: [ tmpStream next == $
                                    ifFalse: [ myStream nextPutAll: 
                                        (tmpStream nextDelimited: $ ); 
                                        nextPut: $
                                    ].

但这只是删掉了每个单词的第一个字母。有什么建议吗?

你真的需要那种旧的Smalltalk/X版本吗?当前的Smalltalk/X版本是6.2.X,在PeakableStream和ReadStream类中包含#nextAlphaNumericWord方法。 但是,我强烈建议您升级到最新的Smalltalk/X版本,这样您就可以享受更好的功能

如果您要移植到Pharo 2.0或3.0,那么您有多个选项来实现该方法,但接近本教程的方法是:

|string stream word1 word2 num1 num2 num3|

string := 'one two 12345 567.678'.
stream := string readStream.

word1 := stream nextDelimited: Character space.
stream skipSeparators.
word2  := stream upToAnyOf: Character separators.
num1   := Number readFrom: stream.
...

你真的需要旧的Smalltalk/X版本吗?当前的Smalltalk/X版本是6.2.X,在PeakableStream和ReadStream类中包含#nextAlphaNumericWord方法。 但是,我强烈建议您升级到最新的Smalltalk/X版本,这样您就可以享受更好的功能

如果您要移植到Pharo 2.0或3.0,那么您有多个选项来实现该方法,但接近本教程的方法是:

|string stream word1 word2 num1 num2 num3|

string := 'one two 12345 567.678'.
stream := string readStream.

word1 := stream nextDelimited: Character space.
stream skipSeparators.
word2  := stream upToAnyOf: Character separators.
num1   := Number readFrom: stream.
...

我在我原来的帖子上加了一条评论。请让我知道你的想法,我已经在我原来的帖子中添加了一条评论。请让我知道您的想法如果您有不同的分隔符,只需使用所有分隔符构建一个集合,并在筛选时使用#includes:进行测试。也可以使用
字符空间
而不是
$
,因为在识别语法和语义空间时会遇到很多问题。并检查=和==之间的差异,因为此处不需要标识。如果有不同的分隔符,只需使用所有分隔符构建一个集合,并在筛选时使用#includes:进行测试。也可以使用
字符空间
而不是
$
,因为在识别语法和语义空间时会遇到很多问题。并检查=和==之间的差异,因为这里不需要标识。