3

给定一个字符串“ABCDE”,我如何在 Golfscript 中找到另一个字符串“C”的出现索引?

? 运算符似乎不起作用(http://www.golfscript.com/golfscript/builtin.html#?):

“C”“ABCDE”?

4

1 回答 1

5
"C""ABCDE".,,@`@`{@>1$,<=}++?

没有办法"C" "ABCDE" ?可行 - 如果进行字符串搜索,它将寻找 in 的第一次ABCDE出现C

然而,在 GolfScript 中,字符串实际上是整数数组的不同表示。"ABCDE"67?给出,2因为 67 是C.

一种稍微好一点的方法,您可能希望它可以工作,但实际上并没有,它是 (X)

"C""ABCDE".,,\`{>1$,<}+%\?

这是相当违反直觉的,但“正确”:?是一个顺序操作,并且字符串优先于数组。比较:

[[1][2][3][4][5]][3]?
["1""2""3""4""5"]"3"?

正如预期的那样,第一个给出 2,但第二个给出 -1,因为 string 的优先级意味着它正在搜索字符串中的数组 - 并且没有数组会等于表示 Unicode 代码点的 int。但是,这些示例确实指出了在使用方法 X 之前将字符串简化为整数数组的另一种方法。

更新

我向 flagitious 发送了一封电子邮件,建议使用一个补丁,并且最新版本的 Golfscript 对string string ?和有新的行为string array ?。所以如果你更新,"ABCDE""C"?应该给2.

于 2011-10-30T09:12:59.950 回答