2012-10-28 57 views
2

爲例子,我有:切斷的特定部分的字符串

String s = "{\"ABC\"}:Mycontent{\"123\"}"; 

我只想要得到的爲myContent {「123」}一部分,這部分可以動態改變。任何人都可以告訴我怎麼做(快速性能)?

+0

找到爲什麼不更換? –

+1

可能「ABC」部分包含冒號(在這種情況下,使用正則表達式),或者是第一個冒號後始終需要的值(在這種情況下,請使用下面的indexOf答案)? – hyde

回答

4

字符串內的拆分方法可以圍繞正則表達式的匹配拆分字符串,因此您可以使用此方法。 如果所需字符串的位置始終相同,也可以使用子序列方法。 你也可以使用子串方法。 很多方法。個人最喜歡的是子串

str2=str.substring(begin, [end]) 

我把[]放在尾,因爲它沒有必要。如果你沒有結束索引,子串將一直持續到字符串結束。兩個索引都必須是整數。此方法也返回一個字符串。

如果數字大小動態變化(例如123變爲4567),您可以通過不使用結束索引來解決此問題,然後使用find函數並查找字符串中最後一位數字之後的字符(I假設這不會改變),然後使用\ 0替換該字符(使用替換方法),以便字符串結束。

我提到的所有方法,有說明可以在javadoc

+2

包含指向文檔或示例的鏈接很有幫助,因此它更清楚您的意思。 – jrajav

+0

對不起,我將編輯我的文章並插入它們 –

2

在字符串中使用的indexOf,你可以找到的發生「:」並從那裏得到的子如下:

s.substring(s.indexOf(':') + 1) 

如果這是來自上游系統的結構化輸出,你應該找標準的方式來解釋它(首先看起來,它看起來像JSON,這意味着你應該使用JSON解析器,但它似乎是別的東西,你會更好地瞭解這個輸入的來源)。

+0

這不是JSON對象。如果你知道該字符串總是具有相同的格式,那麼跳過indexOf會更容易:'s.substring(8)' – jrajav

+0

請不要,這不是Json字符串,它只是看起來像JSON,所以沒有/ ,正如我所說,它可以包含MyContent中的所有內容,因此使用:分割並不是一個好方法 – Xitrum

+0

對,這似乎不是JSON。我想,「ABC」可能不是一個常數,儘管OP沒有談論這部分字符串。 – Vikdor