如何拆分此字符串?
String s="{hello.World::123}";
到String数组:
{"hello","World","123"}
使用正则表达式?
答案 0 :(得分:4)
试试这个:
String s ="{hello.World::123}";
System.out.println(Arrays.toString(s.split("[\\.:{}]+")));
修改强>:
广义解决方案:
String s ="{hello.World::123}".replaceFirst("^[\\.:{}]+", " ").trim();
System.out.println(Arrays.toString(s.split("[\\.:{}]+")));
来自评论(@Peter Lawrey):
对于特定输入,
String s ="{hello.World::123}";
System.out.println(Arrays.toString(s.substring(1).split("[\\.:{}]+")));
答案 1 :(得分:1)
很抱歉我以前的回答给您带来不便。
这可能确实有效:
String[] a = s.replaceAll("[\\{\\}]", "").split("\\.|::");
但是,这不允许您在列表中使用{
或}
作为元素,但我猜您没有。
答案 2 :(得分:1)
稍微修改John的解决方案以避免空字符串:
String s="{hello.World::123}";
s=s.substring(1, s.length()-1);
System.out.println(Arrays.toString(s.split("[\\.:]+")));
答案 3 :(得分:0)
我不认为这是一个简单的单一分裂。你的挣扎可能会告诉你同样的事情。
您可以使用正则表达式匹配多个单词字符并返回每个组,但我不相信一次调用split会执行此操作。
答案 4 :(得分:0)
怎么样:
s.split("\\.|::");