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

发布于 2024-12-04 03:33:51 字数 261 浏览 2 评论 0原文

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

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

“C”“ABCDE”?

Given a string "ABCDE", how do i find the index of occurrence of another string "C" in Golfscript?

? operator doesn't seem to work (http://www.golfscript.com/golfscript/builtin.html#?):

"C" "ABCDE" ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

滥情稳全场 2024-12-11 03:33:51
"C""ABCDE".,,@`@`{@>1$,<=}++?

"C" "ABCDE" ? 不可能起作用 - 如果进行字符串搜索,它将在 C 中查找 ABCDE 的第一次出现

然而,在 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,因为字符串的优先级意味着它正在字符串内搜索数组 - 并且没有数组会等于表示 Unicode 代码点的 int。然而,这些例子确实指出了在使用方法 X 之前将字符串减少为整数数组的另一种方法。

更新

我向 flagitious 发送了一封电子邮件,建议打补丁,最新版本的 Golfscript 对字符串有新的行为字符串? 和字符串数组?。因此,如果您更新,"ABCDE""C"? 应该给出 2

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

There's no way that "C" "ABCDE" ? would work - if that did a string search, it would be looking for the first occurrence of ABCDE in C.

However, in GolfScript strings are really a different presentation of arrays of integers. "ABCDE"67? gives 2 because 67 is the Unicode codepoint for C.

One slightly nicer approach which you might expect to work but doesn't is (X)

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

This is rather counter-intuitive, but "correct": ? is an order operation, and string has priority over array. Compare:

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

The first gives 2, as expected, but the second gives -1 because the priority of string means that it's searching for the array inside the string - and no array will ever be equal to an int representing a Unicode codepoint. However, these examples do point the way to another approach of reducing the strings to arrays of ints before using approach X.

Update

I sent an e-mail to flagitious suggesting a patch and the latest version of Golfscript has new behaviour for string string ? and string array ?. So if you update, "ABCDE""C"? should give 2.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文