Cómo convertir de cadena como "[" 412" , "122"]" para ArrayList

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());

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=301196&siteId=1
Recomendado
Clasificación