2014-12-04 4 views
0

я следующая строка:Разделить строку на карте

... 
field [ 
name = marked 
value = false 
] 
field [ 
name = currenFolder 
value = null 
] 
... 

который в основном объект сохранен этот путь в базе данных. Теперь я хочу создать карту этих двух полей (неуверенный, если это лучшее решение, но в любом случае ;-). Некоторые советы были бы замечательными! Карта должна иметь как обозначенную клавишу, так и значение false и т. Д. Спасибо за любую помощь!

+0

Пожалуйста, помечать вопрос с каким языком программирования вы используете. – IMSoP

+0

Думайте, что вы должны сериализовать этот объект на строку json и сохранить его, тогда вы можете восстановить эту строку хеш-типа – dddd1919

+0

Спасибо. Но это не вопрос, как сохранить, а затем как воссоздать из сохраненных данных карту. Я думаю, что регулярное выражение получило бы трюк. Например, с split («field»), который является началом, но я просто пропущу идею. Подсказка? – tonimaroni

ответ

0

Я думаю, что регулярное выражение сделало бы трюк.

Если вы используете regex, вы можете использовать Capturing groups для извлечения имени и значения:

import java.util.*; 
import java.util.regex.*; 

public class map 
{ 
    public static void main(String[] argv) 
    { 
     String string = "...\nfield [\nname = marked\nvalue = false\n]\n" 
         + "field [\nname = currenFolder\nvalue = null\n]\n...\n"; 
     Map<String, String> map = new HashMap<String, String>(); 
     Pattern p = Pattern.compile("field .(?s).name = (.*?).value = (.*?).]"); 
     Matcher m = p.matcher(string); 
     while (m.find()) 
      map.put(m.group(1), m.group(2)); 
     System.out.println(map); 
    } 
} 
Смежные вопросы