美好的一天。很抱歉,模糊的標題。Android/Java - 刪除子串從最後一個字符開始,直到某個字符
我有一個Android應用程序,我有一個自定義listView,在那個自定義ListView中,我有項目名稱。例如,該列表可以看起來像:
- 項A
- 例題乙
- 樣本列表項C
- 實施例(項目)d
- 最後(實施例)E項
用戶可以執行操作和列表更新如下:
- 項A(FACTOR單位)
- 例題乙
- 樣本列表項C
- 實施例(項目)d
- 最後(實施例)項目(E)
正如你可以看到,第一個項目被添加到基於用戶輸入。我想刪除這個附加的用戶輸入(包括括號和括號之前的空格)這個附加的用戶輸入的長度不同,所以我不能做String item = item.replace(item.substring((str.length()-lengthOfInput),""));
我不能做子串刪除任何東西,因爲項目4和5,除了用括號括起來的將來用戶輸入之外,在括號中包含字符串。
現在我正在考慮的解決方案是檢查項目的最後一個字符,如果它是一個)
,然後我遍歷串向後,直到我打了(
,然後檢查子字符串包含OF
。
我檢查了我的物品數據庫,並且以括號括起來的子字符串結尾的所有物品都不包含模式UNIT OF FACTOR
,這讓我的解決方案記住了可行性。
現在,我的問題是,這是否有一個簡短的解決方案?我知道我可以做一個for循環遍歷最後一個位置的字符串,在某些情況下可以使用)
,並向後遍歷,直到我點擊(
。打到第一個(
後,我有我的子字符串。然後我可以檢查該子字符串是否包含OF
,如果是的話,我修剪它,否則,它不是我想要刪除的字符串。
有沒有關於如何做到這一點的較短版本?對不起,如果我在手頭已經有可行的解決方案時尋求幫助。我正在尋求幫助,因爲我不想在較短的解決方案時編寫長期解決方案。此外,當我在輸入此問題時,我制定了上述解決方案 - 對此表示歉意。
任何幫助,非常感謝。謝謝。
這將無法正常工作,因爲如果字符串是'Item(b)',輸出將是Item而不是Item(b)'。我只想刪除括號內的子字符串,如果它包含「OF」。 – Razgriz 2014-11-22 12:34:34
@Razgriz我編輯了這個答案。希望它可以幫助你 – nu11p01n73R 2014-11-22 12:42:34
工作得很好,謝謝! – Razgriz 2014-11-22 12:59:53