2011-08-26 37 views
1

我在做字符串操作,我需要比在Java中提供的更高級的功能。Java字符串:具有高級功能的類或包?

例如,我想返回字符串中第(n-1)個字符到第n個字符之間的子字符串。

我的問題是,是否有已經由用戶執行此功能編寫的類,以及許多其他字符串操作?或者我應該挖掘我需要的每個特定功能的stackoverflow?

回答

2

你看過正則表達式API嗎?這通常是做複雜的東西用繩子你最好的選擇:

http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

沿着你希望做什麼,你可以遍歷字符串中的一個模式行(在你的情況下,單個字符)和匹配字符串中的所有內容,但不包括字符的下一個實例,即所謂的捕獲組。

它已經因爲我已經寫了一個正則表達式了一段時間,但如果你正在尋找例如字符A,然後我認爲你可以使用正則表達式A([^A]*),並保持該字符串匹配。括號中的內容是一個捕獲組,我在下面參考。與之相匹配的,你就必須在模式匹配方法:

http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#matcher%28java.lang.CharSequence%29

在匹配器實例,您需要確保比賽是真實的,然後不斷調用find()和組(1)根據需要,組(1)會在括號中找到你所在的位置。你可以在你的循環中使用一個計數器來確保你得到這個字母的n-1個實例。

最後,模式提供了可以傳入的標誌,以指示您可能需要的不區分大小寫等內容。

如果我在這裏犯了一些錯誤,那麼有人請糾正我。就像我說的,我不會每天寫正規表達式,所以我確信我有點偏離。

+0

感謝我曾想過正則表達式的太多,但速度在運行時的緣故,我寧可不使用正則表達式匹配的簡單,一般的字符串操作。 – seinecle