给定字符串“ABCDE”,如何在Golfscript中找到另一个字符串“C”的出现索引?
?运算符似乎不起作用(http://www.golfscript.com/golfscript/builtin.html#?):
“C”“ABCDE”?
答案 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
。