SML NJでは、文字列が別の文字列の部分文字列であるかどうかを調べ、そのインデックスを探したいと思う。誰も私にこれを手伝うことができますか?文字列がSMLの他の文字列の部分文字列かどうかを調べるNJ
3
A
答えて
0
すべての部分文字列関数がありますが、その位置も知りたい場合は、リニアスキャンで自分で行うのが最も簡単です。
基本的には、両方の文字列を爆発させ、見つけたい部分文字列の最初の文字と、ソース文字列の各文字を比較し、失敗するたびに位置カウンタをインクリメントします。一致するものが見つかると、位置カウンタを動かすことなく、部分文字列の次の文字に移動します。部分文字列が "空"(空リストを残してモデル化されている)の場合、それはすべて一致していて位置インデックスを返すことができますが、突然一致しなければ最初の一致があったときに戻る必要があります。手紙を飛ばす(ポジションカウンターをインクリメントする)、もう一度やり直してください。
希望すれば、これを自分でやることができます。
3
文字列検索を行うと思われる基底ライブラリでは、Substring.position
という関数しか見つかりません。残念ながら、Substring
モジュールは使いにくいので、次の関数を使って書きました。ただ、2つの文字列を渡し、それがoption
返します。それが発見された場合に見つからない場合NONE
を、またはインデックスのSOME
:
fun index (str, substr) = let
val (pref, suff) = Substring.position substr (Substring.full str)
val (s, i, n) = Substring.base suff
in
if i = size str then
NONE
else
SOME i
end;
関連する問題
- 1. メッセージの部分文字列の部分文字列の部分文字列
- 2. ハスケルでは、文字列が別の文字列の部分文字列であるかどうかをどうやって調べるのですか?
- 3. Chai.js - 文字列にリストの部分文字列が含まれているかどうかを調べる
- 4. 文字列にawkの部分文字列が含まれているかどうかを調べる方法
- 5. リスト項目が文字列の部分文字列であるかどうかを調べる
- 6. 文字列の部分文字列
- 7. 文字列のスカラフィルタ部分文字列
- 8. 文字列内の部分文字列
- 9. Laravel文字列が有効なタイムスタンプ文字列かどうかを調べる
- 10. 文字列aが文字列bの部分文字列かどうかを確認する方法は?
- 11. Apache Pig - 他の文字列の部分文字列
- 12. 豚の他の文字列の中に文字列があるかどうかを調べる
- 13. Python 2.7ある文字列のアナグラムが別の文字列の部分文字列であるかどうかを調べる
- 14. 文字列と部分文字列とメイン文字列に含まれる部分文字列の数
- 15. Ruby:配列内の他の文字列の部分文字列である文字列を削除する
- 16. すべての部分文字列と文字列
- 17. 配列内の部分文字列を調べるJquery
- 18. データ系列が文字列かどうかを調べる
- 19. 他の文字列の文字列の数を調べる方法
- 20. 文字列j番目の文字列の2番目の部分文字列に分割文字列
- 21. 部分文字列のpowershell部分文字列
- 22. 文字列をiOSの部分文字列に分割する
- 23. F#:値が文字列の配列、文字列または文字列の配列の配列であるかどうかを調べる
- 24. 文字列が大文字かどうかを調べるプロトタイプを書く
- 25. 文字列の配列内に文字列が既に存在するかどうかを調べる--javascript
- 26. 文字列から部分文字列を作成する
- 27. 文字列から部分文字列を抽出する
- 28. 文字列の部分文字列を置換する方法Javaの空の部分文字列 ""(部分文字列を削除する)
- 29. 文字列から部分文字列を抽出します。
- 30. 文字列の配列から文字列を分割する