Java 如何将字符串数组文字转换为不带引号的数组列表
简单的场景,但很难完成- 我的绳子是-Java 如何将字符串数组文字转换为不带引号的数组列表,java,regex,string,Java,Regex,String,简单的场景,但很难完成- 我的绳子是- String ipAdd = "["2.2.2.2","1.1.1.1","6.6.6.6","4.4.4.4"]" 我想要数组列表中的所有元素。我该怎么做 我尝试对IP和all进行模式匹配,但不起作用,通过使用拆分功能,它包括引号和括号。以下代码可能满足您的要求: public static void main(String[] args) { String st = "[\"2.2.2.2\",\"1.1.1.1\",\"6.6.6.
String ipAdd = "["2.2.2.2","1.1.1.1","6.6.6.6","4.4.4.4"]"
我想要数组列表中的所有元素。我该怎么做
我尝试对IP和all进行模式匹配,但不起作用,通过使用拆分功能,它包括引号和括号。以下代码可能满足您的要求:
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。请参阅使用replaceAll删除大括号,并根据逗号拆分为拆分,应可以:
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);
}
}
没有引号是什么意思?1.1.1.1在Java中不是一个有效的东西。是否要像2.2.2.2,1.1.1,6.6.6,4.4.4.4这样的字符串?这已经是字符串数组了。你到底想要什么?我想要一个包含项目2.2.2.2、1.1.1.1、6.6.6.6等的数组列表。。。你可以对arraylist说[abc,abc2,abc3],用abc和abc2,abc3作为元素。不,这是一个字符串。请解释你的答案;转储代码对问题的读者很少有用。我已经尝试过了,但如果我给IP ad 1.1.1.1.1.1.1,它是依赖于模式的。它也将接受它并作为1.1.1.1发送给matcher,我希望在列表中添加精确的字符串:您可以更改模式:string patternString1=\\d\\\.\\d*;是的,我想会有更好的选择,但是的,这就足够了。谢谢
"2.2.2.2"
"1.1.1.1"
"6.6.6.6"
"4.4.4.4"