我正在研究源代碼剽竊算法(風選算法)的實現,並遇到需要一些幫助的問題。在java中跟蹤轉換後的字符串的原始位置
實施例: 我有一個字符串
String test="blahello,,,,/blatestbla7234///§"§$%"%$\n\n23344)§()(§$blablayeahbla";
和變換這個字符串
test="blahelloblatestblablablayeahbla"
和從該字符串我建立例如5-克
blahe lahel ahell hello ellob llobl .... ahbla
我kgrams將kgram保存在一個字符串列表中,但也想保存開始和結束位置fr om每個kgram的原始文本,所以我可以在最後引用每個kgram回到它們的原始文本位置。
編輯:
所以我的問題是我怎麼能得到一個的kgram 誰能幫我那裏的開始和結束位置?你有什麼主意嗎? 在此先感謝。
你的意思是這樣的? blahe.begin = 0,blahe.end = 4,lahel.begin = 1,lahel.begin = 5,...? – wimdetr
用你需要的任何屬性定義一個NGram類(例如,n,value,beginIndex,endIndex等)。那麼你的n-gram是NGram的實例,而不是String的實例,你可以攜帶任何你可能會覺得有用的元數據。 – Rob
哦,對不起,我的問題是誤導。我編輯過它。 我可以將它保存在一個類中,但是如何獲取kgram的開始和結束位置。我轉換了原文,並且更換了很多字符。 例如,我想要獲得kgram ellob start pos:4和結束位置13 – vizero