どのような変換文字列 "[" 412" 、 "122"]」のArrayListへ

ビクター・マーティン:

私は、「[」111" 、 『232』 ...]」のように文字列化された配列でフォーマットされたサービスにおけるIDのリストを取得しています。

私が使用しています:

ArrayList<String> ids = new ArrayList<String>(Arrays.asList(strListIds.split("[,\\s]+")));

これは、文字列の最初の[と最後]を削除しませんでした。私は手動でこの文字を削除することができますが、私はこれを行うには正しい方法があるかどうかを知るために、これを求めています。

感謝

YCF_L:

あなたが探しています:

List<String> ids = new ArrayList<>(
        Arrays.asList(
                strListIds.substring(1, strListIds.length() - 1).split(",\\s")
        )
);// ["412","122"]

あなたが維持しない場合""、あなたは、分割前にそれらを交換する必要があります。

.replace("\"", "")

しかし、より良い私が使用します。

ObjectMapper mapper = new ObjectMapper();
String[] arr = mapper.readValue(strListIds, String[].class);
List<String> ids = new ArrayList<>(Arrays.asList(arr));// [412,122]

ボーナスソリューション、正規表現を使用しました:

List<String> ids = Pattern.compile("\"(.*?)\"")
        .matcher(strListIds)
        .results()
        .map(m -> m.group(1))
        .collect(Collectors.toList());

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=301193&siteId=1