2011-01-03 1 views
0

У меня есть массив строк, который имеет ключ и значение, которые разделены с помощью разделителя. Мне нужно отделить пару ключевых значений и перенести ее на HashMap.Отдельная строка с ключевым значением Пара

Строка выглядит следующим образом.

String[] str={"12345$abcd","12332$abcgd","5555$afdsd"}; 
/* 
I need to move it to HashMap as key-value pairs 
12345=abcd 
12332=abcgd 
5555=afdsd 
*/ 

Может кто-нибудь, пожалуйста, помогите мне сделать это наиболее эффективным способом?

+3

Не беспокойтесь об эффективности. Попробуйте это, как вам кажется наиболее логичным. Тогда беспокоиться об оптимизации - это решение слишком медленно. Возможно, начните с String API и используйте методы indexOf() и substring(). Также определите «эффективный». Любое решение, использующее регулярное выражение, не будет наиболее эффективным. – camickr

+0

Вы должны иметь возможность разбивать более 10 000 объектов менее чем за 1 миллисекунду, используя наиболее очевидный подход. Если это не достаточно быстро, вы можете его оптимизировать. –

ответ

4
String[] str={"12345$abcd","12332$abcgd","5555$afdsd"}; 

Map<String, String> map = new HashMap<String, String>(); 
for(final String s : str) { 
    final String split[] = s.split("\\$"); 
    map.put(split[0], split[1]); 
} 
1
String[] str={"12345$abcd","12332$abcgd","5555$afdsd"}; 
Map<String, String> mp = new HashMap<String, String>(); 
for(String string: str){ 
mp.put(string.split("\\$")[0],string.split("\\$")[1]); 
} 
+2

$ - специальный символ регулярного выражения. И вам лучше не разделить дважды;) – Bozho

+0

@Bozho исправлено –

Смежные вопросы