2014-07-17 47 views
0

我正在開發搜索引擎。如何獲取部分字符串使用匹配()在Android

我想用火柴()函數的字符串的某些部分。

例如,

我的關鍵詞是「特定的」和字符串是像下面。

除非適用法律要求或書面同意,根據許可證分發的軟件 分佈在「原樣」的基礎, 無擔保或任何形式的條件,明示或暗示的保證。 詳見許可證下具體語言的管理權限和 限制的許可證。

你可以看到具體的詞是在中間,我想要得到的前10個字與「特殊」爲中心的落後的話...

所以我想要的結果,

查看的許可證語言管理權限

我該怎麼做?

+0

想要搜索的文字有多大?你對你需要多少額外空間有限制嗎?你有限制代碼應該如何迅速讓你的結果? – BVB

回答

0
  1. 字符串分割成一個char []由'「(空格)
  2. 遍歷數組的關鍵詞
  3. 當發現匹配,得到指數
  4. 得到你需要的指數是什麼

可以使1步通過字符串的方法一樣str.toCharArray(..)

+0

非常簡單和簡單的方法!謝謝 – user3815561

0

兩種方法來我的心。

  1. 搜索「具體」,得到它的指數,向後搜索都轉發了「」或標點符號字符。
  2. 習慣正則表達式。例如,你可以用這個來匹配specific language governing permissions and

    [](?<!).+[ ]specific[ ](?!).+[ ](?!).+[ ](?!).+[ ](?!).+[ ] -U

可能是第一個選擇將更加容易創建,十個分量,調試和執行。正則表達式對於它的靈活性非常好,但做簡單的操作,String.indexOf()肯定會更快。

如果它是一所大學的功課,我會做兩個。對於現實世界,我會通過indexOf()操作保持簡單高效。

PD:-U是一個正則表達式修改。 Android的大部分與正則表達式相關的功能都支持修飾符。

+0

謝謝真誠的回答!我實際上在做實習項目。 我會嘗試第一種方式! – user3815561