我有这个字符串
"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个字符串,所以我需要得到这两个字符串:
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, ]"]
我怎样才能得到我想要的结果?我希望这不是一个循环。
答案 0 :(得分:5)
[separador]
包含正则表达式的特殊字符。你将分为s,e,p,a,r,d,和 o。使用:
String[] arregloresultado=resultado.split("\\[separador\\]");
正则表达式使用一个反斜杠但Java文字需要反斜杠反斜杠,因此反斜杠。
答案 1 :(得分:1)
您的分隔符包含正则表达式元字符。为了避免这种错误你可以手动逃避它们(hexafraction的答案),或者让你像这样逃避:
String[] arregloresultado = resultado.split(Pattern.quote("[separador]"));