如何在Golfscript中找到字符串的索引?

时间:2011-09-11 05:34:06

标签: esoteric-languages golfscript

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

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

  

“C”“ABCDE”?

1 个答案:

答案 0 :(得分:5)

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

"C" "ABCDE" ?无法正常工作 - 如果进行字符串搜索,则会在ABCDE中查找C的第一次出现。

但是,在GolfScript中,字符串实际上是整数数组的不同表示。 "ABCDE"67?提供2,因为67是C的Unicode代码点。

一种稍微好一点的方法,你可能期望工作,但不是(X)

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

这是违反直觉的,但“正确”:?是一个订单操作,字符串优先于数组。比较:

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

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

更新

我发送了一封电子邮件,以标榜性建议修补程序,最新版本的Golfscript对string string ?string array ?有新的行为。因此,如果您更新,"ABCDE""C"?应该提供2