Разбор строки, имеющий специальные символы - PullRequest
1 голос
/ 13 сентября 2010

У меня есть строка в этой форме:

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

Как мне получить все имена?

Когда я получаю данные из базы данных, я получаю их в этой форме.

В поисках решения для Java.

Спасибо

Ответы [ 3 ]

2 голосов
/ 13 сентября 2010

Этот трюк должен сделать это:

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

Снимает передние и конечные скобки и заменяет внутренние скобки запятой. Теперь вы можете разделить ввод вокруг , и иметь массив только с именами.

0 голосов
/ 13 сентября 2010

У вас всегда есть пары имен?Возможно ли иметь [[name2,]]?

Если имена всегда идут парами, то ответ Andreas_D - это простой прямой ответ.Если одно из имен может отсутствовать, то вам нужно добавить пару вызовов replace () перед ними, чтобы найти их и ввести фиктивные значения. В частности, «[,» с «[dummyFirst,» и «,]» с, dummyLast]».Затем вам придется обрабатывать эти фиктивные значения в соответствии с правилами, подходящими для вашего контекста.

0 голосов
/ 13 сентября 2010

Вы можете использовать класс Scanner в Java для анализа данных.

...