0

我有这个字符串

"ok[separador]2272[dato]HOSPITAL ISSSTE 2             [dato]Ok, Realizado correctamente[fila]48612[dato]CFE YUCALPETEN[dato]Ok, Realizado correctamente[fila]48687[dato]IMPRESOS PUBLICITARIOS[dato]Ok, Realizado correctamente[fila]"

第一步我需要用 [separador] 分割 2 个字符串,所以我需要得到这 2 个字符串:

ok
2272[dato]HOSPITAL ISSSTE 2             [dato]Ok, Realizado correctamente[fila]48612[dato]CFE YUCALPETEN[dato]Ok, Realizado correctamente[fila]48687[dato]IMPRESOS PUBLICITARIOS[dato]Ok, Realizado correctamente[fila]

然后在我的代码中我有这个:

String[] arregloresultado=resultado.split("[separador]");

但我得到一个包含这些值的数组

[", k[, , , , , , , , , ]2272[, , t, ]HOSPITAL ISSSTE 2             [, , t, ]Ok, R, , liz, , ,  c, , , , ct, m, nt, [fil, ]48612[, , t, ]CFE YUCALPETEN[, , t, ]Ok, R, , liz, , ,  c, , , , ct, m, nt, [fil, ]48687[, , t, ]IMPRESOS PUBLICITARIOS[, , t, ]Ok, R, , liz, , ,  c, , , , ct, m, nt, [fil, ]"]

我怎样才能得到我想要的结果?我希望这不是一个循环。

4

2 回答 2

5

[separador]包含正则表达式的特殊字符。您将拆分 s、e、p、a、r、do。采用:

String[] arregloresultado=resultado.split("\\[separador\\]");

正则表达式使用一个反斜杠,但 Java 文字需要一个反斜杠作为反斜杠,因此需要 2 个反斜杠。

于 2013-08-15T15:30:53.480 回答
1

您的分隔符包含正则表达式元字符。为了避免这种错误,您可以手动转义它们(hexafraction 的答案),或者像这样为您完成转义:

String[] arregloresultado = resultado.split(Pattern.quote("[separador]"));
于 2013-08-15T15:33:57.637 回答