2013-01-07 107 views
0

是否有可能比較字符串中的Android到數組?這是爲使用Porter Stemmer的字典應用程序而開發的,用於我的論文。Android的 - 比較字符串數組

例如,輸入字是PROCESSES(放置在字符數組內),並且我想掃描如果輸入包含「S」,「ES」或「小規模企業」,則刪除它們。

我想通過信函比較信的,但是這將是一個冗長乏味的編碼,我相信。 是否有更簡單的方法只是比較像這樣的輸入字:

If (inputWord has string "es") 
{ 
    delete "es 
} 

example input: PROCESSES 
example output: PROCESS 

回答

1
if(inputWord.contains(checkWord)) 
{ 
    int i = inputWord.indexOf(checkWord); 
    StringBuilder sb = new StringBuilder(inputWord); 
    sb = sb.delete(i, i+(checkWord.length())); 
    inputWord = sb.toString(); 
} 

將您的值存儲在字符串中。它會更容易。希望這段代碼能幫助你。如果您必須檢查多個單詞,請將所有單詞存儲在數組中,然後將此片段放入for循環中。

+0

我嘗試使用endsWith,因爲我正在尋找的是後綴。改變inputWord.contains(checkWord)到inputWord.endsWith(checkWord)不應該是一個問題吧? 編輯:我設法讓你的代碼的工作吧!謝謝! –

+0

嗨,你能告訴我如何代替刪除只是替換後綴?我用inputWord.endsWith(checkWord)代替contains()。我想要發生的是,如果inputWord將此checkword作爲後綴,則將checkWord替換爲另一個字符串。 –

1

您可以使用String.contains和String.replaceAll功能:

//if (inputWord.contains("es")) { 
    inputWord.replaceAll("es", ""); 
//} 

你不需要if語句,你也可以直接替換。如果沒有找到字符串,它將不會執行任何操作。

+0

您好,是有辦法,我可以只需更換後綴?並非真正發生過「es」。 ?我能夠使代碼正常工作,但它所做的是將所有「es」替換爲「」。 我用endsWith而不是contains。 –

+0

太糟糕了,沒有replaceLast(只替換First)。你應該做的是檢查endsWith並創建一個新的字符串,從pos 1複製到你的出現的開始。 – RvdK

0

也許我不明白你的問題,但可以使用

char[] data = {'a', 'b', 'c'}; 
String str = new String(data); 

String str = "abc"; 
char[] data = toCharArray(); 

您可以檢查使用indexOf(String)contains(String)一個子是否包含Stringchar[]之間的轉換。