int l_start = p_message.indexOf("<service"); l_start = p_message.indexOf(" sfid=\"", l_start); int l_end; if (l_start != -1) { l_start += 7; l_end = p_message.indexOf("\"", l_start); l_sfid = p_message.substring(l_start, l_end); l_start = true; l_end = true; l_srchStart = true; l_start = p_message.indexOf("<service"); l_start = p_message.indexOf(" id=\"", l_start); if (l_start != -1) { l_start += 5; l_end = p_message.indexOf("\"", l_start); l_appName = p_message.substring(l_start, l_end);
时间: 2024-04-18 19:30:30 浏览: 62
这段代码的作用是从字符串 `p_message` 中提取出 `<service` 和 `sfid` 以及 `id` 属性的值。它使用了 `indexOf` 方法来查找子字符串的起始位置,然后使用 `substring` 方法来提取子字符串。
首先,代码通过 `indexOf("<service")` 查找 `<service` 子字符串的起始位置,并将结果赋值给 `l_start` 变量。
接下来,代码通过 `indexOf(" sfid=\"", l_start)` 查找 `" sfid=\""` 子字符串的起始位置,并将结果赋值给 `l_start` 变量。这里的 `l_start` 变量作为起始位置的参数传递给了 `indexOf` 方法,以限制搜索范围。
如果找到了子字符串 `" sfid=\""`,则将 `l_start` 的值加上 7,并将结果赋值给 `l_start` 变量。这是为了跳过 `" sfid=\""` 子字符串本身,使 `l_start` 指向 `sfid` 属性的值的起始位置。
接着,代码通过 `indexOf("\"", l_start)` 查找 `"` 字符的位置,并将结果赋值给 `l_end` 变量。然后,使用 `substring` 方法提取出 `sfid` 属性的值,并将其赋值给 `l_sfid` 变量。
接下来,代码将一些变量设置为 `true`。这些变量可能是其他部分的标志变量,用于后续逻辑判断。
然后,代码重新查找 `<service` 子字符串的起始位置,并将结果赋值给 `l_start` 变量。
接着,代码通过 `indexOf(" id=\"", l_start)` 查找 `" id=\""` 子字符串的起始位置,并将结果赋值给 `l_start` 变量。这里的逻辑和之前的步骤类似,目的是找到 `id` 属性的值的起始位置。
如果找到了子字符串 `" id=\""`,则将 `l_start` 的值加上 5,并将结果赋值给 `l_start` 变量。这是为了跳过 `" id=\""` 子字符串本身,使 `l_start` 指向 `id` 属性的值的起始位置。
最后,代码通过 `indexOf("\"", l_start)` 查找 `"` 字符的位置,并将结果赋值给 `l_end` 变量。然后,使用 `substring` 方法提取出 `id` 属性的值,并将其赋值给 `l_appName` 变量。
总之,这段代码的目的是从字符串中提取出 `sfid` 和 `id` 的属性值,并将它们分别赋值给 `l_sfid` 和 `l_appName` 变量。
阅读全文