文字列 "ABCDE" が与えられた場合、Golfscript で別の文字列 "C" の出現インデックスを見つけるにはどうすればよいですか?
? 演算子が機能していないようです ( http://www.golfscript.com/golfscript/builtin.html#? ):
"C" "ABCDE" ?
文字列 "ABCDE" が与えられた場合、Golfscript で別の文字列 "C" の出現インデックスを見つけるにはどうすればよいですか?
? 演算子が機能していないようです ( http://www.golfscript.com/golfscript/builtin.html#? ):
"C" "ABCDE" ?
"C""ABCDE".,,@`@`{@>1$,<=}++?
それが機能する方法はありません-それが文字列検索を行った場合、それはでの最初の出現を"C" "ABCDE" ?
探します。ABCDE
C
ただし、GolfScriptでは、文字列は実際には整数の配列の異なる表現です。"ABCDE"67?
67はの2
UnicodeコードポイントであるためC
です。
あなたがうまくいくと期待するかもしれないがそうではない1つの少し良いアプローチは(X)です
"C""ABCDE".,,\`{>1$,<}+%\?
これは直感に反しますが、「正しい」:?
順序操作であり、文字列は配列よりも優先されます。比較:
[[1][2][3][4][5]][3]?
["1""2""3""4""5"]"3"?
最初の値は予想どおり2になりますが、文字列の優先度は文字列内の配列を検索することを意味するため、2番目の値は-1になります。また、Unicodeコードポイントを表すintに等しい配列はありません。ただし、これらの例は、アプローチXを使用する前に、文字列をintの配列に縮小する別のアプローチへの道を示しています。
パッチを提案する電子メールを悪意のある人に送信しましたが、Golfscriptの最新バージョンにはとの新しい動作がstring string ?
ありstring array ?
ます。したがって、更新する場合は、を指定する"ABCDE""C"?
必要があります2
。