如何拆分这个字符串?

时间:2011-06-17 09:46:56

标签: java regex string

如何拆分此字符串?

String s="{hello.World::123}";

到String数组:

{"hello","World","123"}

使用正则表达式?

5 个答案:

答案 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("\\.|::");