2

例如,我有:

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

我只想获取 Mycontent{"123"} 部分,这部分可以动态更改。谁能告诉我怎么做(快速性能)?

4

2 回答 2

4

字符串内部的拆分方法可以围绕正则表达式的匹配拆分字符串,因此您可以使用此方法。如果您想要的字符串的位置始终相同,您也可以使用 subsequence 方法。您也可以使用 substring 方法。很多种方法。个人最喜欢的是子串

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

我把 [] 放在末尾,因为它没有必要。如果您不放置结束索引,则子字符串将一直持续到字符串的末尾。两个索引都必须是整数。此方法还返回一个字符串。

如果数字的大小也动态变化(例如 123 变为 4567),您可以通过不使用结束索引然后使用查找函数并查找字符串中最后一个数字之后的字符来解决此问题(我想这不会更改),然后用 \0 替换该字符(使用替换方法),以便字符串在那里结束。

我提到的所有方法和解释都可以在javadoc中找到

于 2012-10-28T14:23:48.330 回答
2

在字符串上使用 indexOf,您可以找到 ':' 的出现并从那里获取子字符串,如下所示:

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

如果这是来自上游系统的结构化输出,你应该寻找标准的方式来解释它(乍一看,它看起来像 JSON,这意味着你应该使用 JSON 解析器。但它似乎是别的东西,你会知道的更好关于这个输入的来源)。

于 2012-10-28T14:21:22.953 回答