字符串解析具有特殊字符

时间:2010-09-13 13:31:34

标签: java string parsing

我有一个这种形式的字符串:

String buf = "[[[name11,name12]][[name21,name22]][[name31,name32]]]";

如何检索所有名称?

当我从数据库中检索数据时,我会以这种形式重新获取数据。

寻找Java解决方案。

谢谢

3 个答案:

答案 0 :(得分:2)

这个技巧应该这样做:

String csv = buf.replace("[[[","").replace("]]]","").replace("]][[",",");
String[] names = csv.split(",");

删除前导括号和尾随括号,并用逗号替换内括号。现在,您可以在,周围拆分输入,并使用仅包含名称的数组。

答案 1 :(得分:0)

您可以使用Java中的Scanner类来解析数据。

答案 2 :(得分:0)

你总是有两双名字吗?是否可以[[name2,]]?

如果名字总是成对出现,那么Andreas_D的回答是一个简单的直接答案。如果其中一个名称可能丢失,那么你需要在前面添加几个replace()调用来查找这些并放入虚拟值。具体为“[,”带“[dummyFirst,”和“,]”with“ ,dummyLast]”。然后,您必须根据适合您的上下文的任何规则处理这些虚拟值。