如何将字符串数组文字转换为没有引号的数组列表

时间:2016-03-24 08:47:10

标签: java regex string

简单的场景,但很难完成 -

我的字符串是 -

$nulls

我希望将所有元素放在数组列表中。我怎么能这样做?

我尝试模式匹配IP和所有,不工作,并使用拆分功能,它包括引号和括号。

2 个答案:

答案 0 :(得分:0)

使用replaceAll()(删除大括号)和split()(基于逗号分割)应该有效:

public static void main(String... args) throws Exception {
    String ipAdd = "[\"2.2.2.2\",\"1.1.1.1\",\"6.6.6.6\",\"4.4.4.4\"]";
    List<String> list = Arrays.asList(ipAdd.replaceAll("\\[|\\]", "").split(","));
    for (String s : list){
        System.out.println(s);
    }

}

O / P:

"2.2.2.2"
"1.1.1.1"
"6.6.6.6"
"4.4.4.4"

答案 1 :(得分:-1)

以下代码可能符合您的要求:

public static void main(String[] args) {
    String st = "[\"2.2.2.2\",\"1.1.1.1\",\"6.6.6.6\",\"4.4.4.4\"]";

    String patternString1 = "(\\d\\.\\d\\.\\d\\.\\d)";

    Pattern pattern = Pattern.compile(patternString1);
    Matcher matcher = pattern.matcher(st);
    ArrayList<String> list = new ArrayList<>();
    while(matcher.find()) {
        list.add(matcher.group(1));
    }
    for (String item : list) {
        System.out.println("" + item);
    }
}

您可以将正则表达式与捕获组一起使用,以从字符串中提取IP。 (参考https://docs.oracle.com/javase/tutorial/essential/regex/groups.html