简单的场景,但很难完成 -
我的字符串是 -
$nulls
我希望将所有元素放在数组列表中。我怎么能这样做?
我尝试模式匹配IP和所有,不工作,并使用拆分功能,它包括引号和括号。
答案 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)