Víctor Martín :
Me estoy poniendo una lista de identificadores de servicio en un formato de una matriz Stringified como "[" 111" , '232' ...]".
Estoy usando:
ArrayList<String> ids = new ArrayList<String>(Arrays.asList(strListIds.split("[,\\s]+")));
pero esto no elimina la primera [y el último] de la cadena. Puedo eliminar este caracteres manualmente, pero yo estoy pidiendo esto para saber si hay una manera correcta de hacer esto.
Gracias
YCF_L:
¿Está buscando para:
List<String> ids = new ArrayList<>(
Arrays.asList(
strListIds.substring(1, strListIds.length() - 1).split(",\\s")
)
);// ["412","122"]
Si no va a mantener el ""
, entonces usted va a cambiar antes de la división:
.replace("\"", "")
Pero mejor que yo usaría:
ObjectMapper mapper = new ObjectMapper();
String[] arr = mapper.readValue(strListIds, String[].class);
List<String> ids = new ArrayList<>(Arrays.asList(arr));// [412,122]
solución de experiencia, usando expresiones regulares:
List<String> ids = Pattern.compile("\"(.*?)\"")
.matcher(strListIds)
.results()
.map(m -> m.group(1))
.collect(Collectors.toList());