解析一个字符串并获取某些值

时间:2013-06-29 08:31:26

标签: android string design-patterns

我有一个这样的字符串:

  

_id:2 thread_id:189 地址:0292 m_size:null person:0 date:1372494272447 date_sent:0 protocol:0 read:1 status:-1 type:1 reply_path_present:0 subject:null的体:好。回复消息。 service_center:051108已锁定:0 sim_id:0 error_code:0见过:1 _id:1 thread_id:189 地址:292 m_size:null person:0 date:1372493695831 date_sent:0 protocol:null读取:1状态:-1类型:2 reply_path_present:null subject:null body:测试消息 service_center:null locked:0 sim_id:0 error_code:0看到:0

我想只从整个字符串中检索此字符串的部分内容,例如地址:0292 正文:xyz 。我希望这两个实例都来自一个非常大的字符串(上面只是一个示例)。我们假设它超过20000个字符。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

看起来每个address后跟m_size,因此请使用string.split()功能拆分关键字address,然后选择string.substring()(来自结果数组中的每个字符串),直到达到关键字m_size。并为关键字bodyservice_center重复整个过程。我无法想到任何其他方式。

答案 1 :(得分:0)

你是对的,它看起来并不漂亮。但它有效:)

String[] splitString = string.split(" ");
for (int i = 0; i < splitString.length; i++) {
if (splitString[i].startsWith("body") || splitString[i].startsWith("address"))
    Log.i(TAG, "Found: " + splitString[i]);
    // Do whatever you need to do
}