我有一個問題。在Java中查找子串的索引
假設我們有兩個字符串str1,str2。字符串可以是任何東西。現在,我們需要創建一個搜索str1並返回索引號的方法。 str1中第一次出現str2,如果找不到則返回-1。但是我們不能使用string.indexOf方法。
我被撞到如何去做。
任何幫助,將理解
由於
我有一個問題。在Java中查找子串的索引
假設我們有兩個字符串str1,str2。字符串可以是任何東西。現在,我們需要創建一個搜索str1並返回索引號的方法。 str1中第一次出現str2,如果找不到則返回-1。但是我們不能使用string.indexOf方法。
我被撞到如何去做。
任何幫助,將理解
由於
只需使用方法myString.GetChartAt(索引);做你想做的事。 (例如,在循環系統中使用它來比較字符串str1和str2)。 另一種方式可以考慮正則表達式來實現你想要的,這聽起來像作業,其他的約束是什麼?
如何:
對不起,但在這個基本問題上發佈代碼是不會幫助你的。所以我沒有。
嘿,謝謝Nam。我會考慮你的解決方案。我只是想要這個邏輯。不管怎麼說,多謝拉 – user753334 2011-05-16 04:12:47
如果你想真正打動你的教授做以下...
查找將執行Powerset的建設或者自己寫的代碼,將主要從搜索字符串生成DFA庫。然後逐個遍歷字符串和DFA中的一個字符,如果最終處於接受狀態,則會找到它。
當你迭代你的字符串跟蹤當前字符的索引。如果您的DFA接受,那麼只需從當前索引中減去搜索字符串長度,然後您就可以在字符串中開始索引。
爲什麼你不能用'string.indexOf'? – 2011-05-14 05:42:12
你可以使用正則表達式嗎?或者這是一個編程作業,你必須從最初的原則來做呢? – sjr 2011-05-14 05:43:37
@gshauger:你是指aioobe?他只是*編輯*的問題,它最初來自user753334。 – 2011-05-14 06:27:22